微信爬虫实践

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 )

相关文档

项目地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容