python爬取⼩程序(实战篇)
python爬取⼩程序(实战篇)
本⽂链接:
⼀、背景介绍
近期有需求需要抓取⼩程序中的数据分析,与⼀般的⽹页爬⾍类似,主要⽬标是获取主要的URL地址进⾏数据爬取,⽽问题的关键在于如何获取移动端request请求后https加密的参数。本⽂从最初的抓包到获取URL、解析参数、数据分析及⼊库等,⼀步步进⾏⼩程序的数据爬取。
此次爬取的⽬标是⼩程序“财神股票”中的已受理科创版公司名单数据,如下:
注:抓包、分析、爬取等全过程⼏乎通⽤于⼩程序,可以类似的爬取其他⼩程序测试,原理⼤同⼩异。
⼆、环境配置
具体的环境配置参考:
移动端:iPhone;
PC端:Windows 10;
软件:Charles
注:⽹络要求较⾼,请确保⽹络访问⽆限制。
三、Charles抓包
Charles相关的配置与说明在此前的⼀篇⽂章()中有详细说明,此间不再赘述,强调⼀点就是移动端证书确保始终信任状态:
1. 设置移动端⽹络代理;
2. 打开Charles,关闭Windows proxy;
3. 打开⼩程序,Charles提⽰如下说明正常连接:
4. 点击⼩程序后,在Charles中显⽰如下:
5. 为了避免过度链接⼲扰,点击清除按键,清理后,点击“科创版专题”,Charles抓取链接如下:
6. 点击,在右端contents中可以看到请求的详细内容(为什么是这个链接⽽不是别的?我也是⼀个个点开尝试的…)。
7. 在右侧的overview中,可以看到URL的value:
看到这个链接有⽊有很熟悉的感觉呢?Method对应的值是GET,也就是说此链接是通过GET⽅法进⾏获取与展⽰数据,在主链接后采⽤key与value拼接的⽅式发送请求,最后两个参数pageIndex=1与pageSiz
e=5,对应第⼀个页⾯展⽰的5条数据,在Charles右侧的contents中,下⽅选择JSON Text,可以看到对应返回的response如下:
此处的 ”count”: 110 对应⽬前共有110条与科创版公司相关的数据。
8. 在拿到overview中的⽬标URL之后,直接修改pageSize的值为110,在浏览器中访问链接:后显⽰如下:
此数据即为⼩程序中展⽰的数据,也就是我们此次爬取的对象。
四、数据分析及⼊库
拿到⽬标URL后,可以采⽤python的requests库进⾏数据爬取:
详情代码此间不再赘述,完整代码参考GitHub:
注:
1. 数据清洗的过程中,剔除了港股股票;
2. 通过爬取东⽅财富⽹获取每家上市公司的股票代码,详情参考GitHub代码;
3. 上市公司与科创版公司的对应关系为多对多的关系,即⼀家上市公司可能对应多家科创版公司,⼀家科创版公司可能对应多家上市公司;
4. 由于科创版公司⽬前暂⽆股票代码等详细信息,故数据的存储⽅式采⽤上市公司对应科创板公司的⽅式存储,具有⼀定的冗余;
5. 由于⽬前所有的数据均存在变化(如新加科创版公司、上市公司⼜与新的科创版公司相关联、科创版公司⼜与新的上市公司相关联等),所以最好每次都清空之前的
数据,不要只在之前数据的基础上新增。
五、问题总结
1. ⼩程序内容加载缓慢或⽹络异常:
除了python还有什么可以爬虫在测试时,发现Charles获取⼀些财经类⼩程序(新闻联播、财神⾏情等)均显⽰正常,抓包等也⽆问题,但是对于⼀些电商⼩程序(京东购物、当当等),移动端有时候可能会显⽰⽹页打不开或⽆法加载,经测试发现与⽹络关系较⼤,可能由于⽹络本⾝的原因、移动端代理设置等问题导致。
六、参考链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论