您的位置:首页 > 移动开发

安居客app端抓取数据包 分析数据包的签名 编写爬虫脚本

2017-08-13 18:17 267 查看
为什么要这么蛋疼,要从app入手来爬虫 ? 网页的数据不是也可以爬吗? 对于少量数据的抓取,网页爬取是完全没问题的。 至少爬一个城市的房价信息是可以的。但是,对于要抓取百万级数据量的爬虫,安居客做了多重反爬策略,如果你没遇到,说明你的数据量不大。安居客的反爬策略有 验证码, 封IP。 而IP被封后,尝试过使用代理IP去绕过,不过不知道为什么一直返回404, 不知到安居客用的什么高级的技术。所以才有了下面的抓取安居客app的数据包,进行解包分析。环境: ubuntu + fiddler1. 从抓取的数据包中, header是这样的:GET /mobile/v5/sale/property/list?page_size=25&map_type=google&q=%E7%8F%A0%E5%85%89%E5%85%AC%E5%AF%93&city_id=13&with_broker_recommend=0&page=1&androidid=4dd00e258bbe295f&uuid=eed878f6-da69-46b4-b858-46deddbca485&cid=-1&pm=b638&version_code=321813&m=Android-SM801&qtime=20170813171637&from=mobile&app=a-ajk&v=5.1.1&i=990006203070023&_pid=23843&cv=10.10.2&o=icesky_msm8992-user%205.1.1%20LMY47V%201%20release-keys&macid=12a0fc64a12e5d8a1ef367d0bccb9690&_chat_id=0&manufacturer=smartisanHTTP/1.1sig: 762a1b27c720f665e5a1c876ec8f9292key: eb8cd4ef60fde7580260cf9cf4250a24AuthToken: MemberToken: Accept: application/jsonContent-type: application/jsonnsign: 1000252865b4adb0f09986bb81114dd3011fHost: api.anjuke.comConnection: Keep-AliveAccept-Encoding: gzipUser-Agent: okhttp/3.6.0如果直接提交url的链接,会返回一个签名的错误。 从这个错误就可以知道,提交的信息中,需要签名信息。也就是sig: 762a1b27c720f665e5a1c876ec8f9292 这个。从每次提交的header来看,每次的签名都不一样。 因为提交的url数据里面,有一个是qtime,这个是与时间有关的数据。qtime=20170813171637这个很简单,通过
now=datetime.datetime.now()
qt= now.strftime("%Y%m%d%H%M%S")
就可以获得。
其他的url参数都是固定的,那么接下来就看是要怎样获取这个签名的方法。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: