app爬虫流程总结

环境配置:

windows上安装Android sdk(为了使用adb命令调试,使用uiautomatorviewer进行自动化元素位置获取),

安装Python3环境,安装mitmproxy:pip install mitmproxy

 

windows上安装夜神模拟器(使用Android 7的,Android 4 和Android 5的有些app不支持,有必要的时候还需要安装xposed框架解决sslpining的问题),配置开启root,开启网络桥接模式,开启开发模式,开启usb调试

然后模拟器安装证书,参考:https://www.cnblogs.com/sheajin/p/11075713.html

安装好后模拟器设置代理,windows命令行下输入:mitmweb -p 8889,如果8889没有被占用却出现了如下问题:

Traceback (most recent call last):
  File "d:\dev\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\dev\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "d:\dev\Anaconda3\Scripts\mitmweb.exe\__main__.py", line 9, in <module>
  File "d:\dev\anaconda3\lib\site-packages\mitmproxy\tools\_main.py", line 174, in mitmweb
    run(web.master.WebMaster, cmdline.mitmweb, args)
  File "d:\dev\anaconda3\lib\site-packages\mitmproxy\tools\_main.py", line 133, in run
    master.run()
  File "d:\dev\anaconda3\lib\site-packages\mitmproxy\tools\web\master.py", line 110, in run
    http_server.listen(self.options.web_port, self.options.web_iface)
  File "d:\dev\anaconda3\lib\site-packages\tornado\tcpserver.py", line 143, in listen
    sockets = bind_sockets(port, address=address)
  File "d:\dev\anaconda3\lib\site-packages\tornado\netutil.py", line 168, in bind_sockets
    sock.bind(sockaddr)
OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

 

说明mitmproxy 默认的webui的端口(8081)被占用,用命令改下webui端口  mitmweb --web-port 8888 -p 8889,这样就可以启动成功了

然后启动app,这样就可以抓到https的包了

通过mitmweb可以进行辅助分析包,也可以安装charles证书(安装过程同mitmproxy安装过程),使用charles这个抓包工具来辅助分析包

 

分析包后,然后指定Python脚本,mitmdump -s target.py -p 8889,就可以抓到包入库了

 

appium自动化注意点:

  1.在文章列表爬取的时候,注意使用递归,因为每次点击(click)进入一个文章后,再次back回来的时候,元素会可能有些偏差

  2.每次获取元素标签的时候,都要设置wait.until

  3.最好获取文章标题元素节点,这样点击不会有误差,不会有纰漏

 

转载于:https://www.cnblogs.com/sheajin/p/11119781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值