美文网首页爬虫实践
微信爬虫实践

微信爬虫实践

作者: 蜡笔小姜和畅畅 | 来源:发表于2018-07-11 09:25 被阅读102次
    Screen Shot 2018-07-11 at 9.24.24 AM.png

    概要

    使用requests和BeautifulSoup来进行微信爬虫,实现登录和收发消息的功能。并且会介绍微信的具体业务流程和flask框架。

    具体内容

    • flask
      • session
        赋值
        ticket_dic = session('ticket_dic')
        获取值
        ticket_dic = session.get('ticket_dic')
      • jsonify
        flask接口返回json格式的数据
        return jsonify(response)
      • request
        定义一个请求方法
        def login(): if request.method == 'GET': 请求的内容
      • render_template
        渲染一个html页面,也可以传入数据
        return render_template('login.html',qr_img=qr_img)
    • 登录流程
      • 获取二维码图片
      • 扫描二维码,拿到用户头像
      • 确认登录,获取用户信息,可以接受消息
      • 获取好友列表
      • 发送消息
        sender(id) -> receiver(id)
    • 其他注意事项
      • 用户凭证ticket
        xml解析
        def xml_parser(text): dic = {} soup = BeautifulSoup(text,'html.parser') div = soup.find(name='error') for item in div.find_all(recursive=False): dic[item.name] = item.text return dic
      • cookie
        session['ticket_cookie'] = ticket_ret.cookies.get_dict()
      • 正则(re)
        获取http链接
        redict_uri = 'redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=ARG5rXcGrb1FB-YaT3qeviuc@qrticket_0&uuid=QYKZ2sJyhw==&lang=zh_CN&scan=1530675611"'
        使用正则去掉‘redict_uri =’
        redirect_url = re.findall('redirect_uri="(.*)"',redict_uri)[0]
      • 防盗链
        请求头hearder加入‘defer’字段
      • 消息发送编码问题
        请求使用json=
        r = requests.post( url=msg_url, json=msg_data )

    相关文档

    项目地址

    相关文章

      网友评论

        本文标题:微信爬虫实践

        本文链接:https://www.haomeiwen.com/subject/kbbcpftx.html