Beispiel #1
0
def shard_action(driver, udid):
    # 每天关注100个
    print("【开始执行,每天自动关注180个公众号】")
    start_id = 0
    end_id = 0
    data = read_cofig(CONFIG_FILE)
    for device in data:
        if (device['udid']) == udid:
            start_id = device['start']
            end_id = device['end']
            break
    print('开始序列号' + str(start_id))
    print('结束序列号' + str(end_id))
    task_file = "/Users/liushinan/PycharmProjects/wechatspider/configs/task.csv"
    contacts = []  # 已关注的公众号
    utils.enter_talkbox(driver, 'com.tencent.mm:id/b4m')

    with open(task_file, 'r', encoding="utf8", errors="ignore") as f:
        for line in f.readlines()[start_id:end_id]:
            line = line.replace("\n", "").split(",")
            id, biz = line[0], line[1]
            print('----------------当前测试序号:' + id + '  当前测试biz:' +
                  str(biz).lstrip('__biz='))
            bizurl = 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=' \
                     + biz + '&scene=124#wechat_redirect' + '\n' + id
            # 发送消息
            utils.send_msg(driver, bizurl)
            # 点击链接
            utils.click_last_msg_in_talkbox(driver, 'com.tencent.mm:id/nl')
            # 点击自动关注
            add_contact(driver)
            contacts.append(biz)

    print('已关注的公众号:' + str(contacts))
    # 更新数据库
    conn = dbutil.connectdb_wechatcluster()
    dbutil.insert_by_many_bizinfo_addcontact(conn, contacts)
    conn.close()
    # 更新配置文件
    start_id = end_id
    end_id = end_id + 180
    # 写入 yaml 文件
    update_serial(CONFIG_FILE, udid, start_id, end_id)
"""
根据搜索关键词获取指定公众号类
"""

user = "******"  # 微信公众号账号
password = "******"  # 公众号密码
# 设置要爬取的公众号列表
gzlist = [
    '新华社', '人民网', '环球时报', '参考消息', '瞭望智库', '侠客岛', '中国之声', '都市快报', '新京报评论',
    '每日精选', '现代快报', '今日话题', '今日评说', '宁南山', '冯站长之家', '都市快报', '凤凰网南方都市报',
    '中国青年报', '北京青年报', '南方都市报', '每日关注', '华尔街见闻', '占豪', '凤凰网', '中央电视台', '中国之声',
    '南方周末', 'Vista看天下', '现代快报', '今日话题', '半月谈', '远方青木', '天涯时事', '后沙', '呦呦鹿鸣',
    '狐狸罐头', '时事纵横', '政事堂2019', '每日读报', '虎嗅APP', '观察者网', '今日焦点透视'
]

conn = dbutil.connectdb_wechatcluster()


def weChat_login():
    """ 登录微信公众号,获取登录之后的cookies信息保存到本地文本 """
    # 定义一个空的字典,存放cookies内容
    post = {}

    # 用webdriver启动谷歌浏览器
    print("启动浏览器,打开微信公众号登录界面")
    driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')
    # 打开微信公众号登录页面
    driver.get('https://mp.weixin.qq.com/')
    # 等待5秒钟
    time.sleep(5)
    print("正在输入微信公众号登录账号和密码......")