安居客app端抓取数据包分析数据包的签名编写爬⾍脚本
为什么要这么蛋疼,要从app⼊⼿来爬⾍ ? ⽹页的数据不是也可以爬吗?
对于少量数据的抓取,⽹页爬取是完全没问题的。 ⾄少爬⼀个城市的房价信息是可以的。
但是,对于要抓取百万级数据量的爬⾍,安居客做了多重反爬策略,如果你没遇到,说明你的数据量不⼤。
安居客的反爬策略有 验证码, 封IP。 ⽽IP被封后,尝试过使⽤代理IP去绕过,不过不知道为什么⼀直返回404, 不知到安居客⽤的什么⾼
级的技术。
所以才有了下⾯的抓取安居客app的数据包,进⾏解包分析。
环境: ubuntu + fiddler
1. 从抓取的数据包中, header是这样的:
GET /mobile/v5/sale/property/list?
mui商城模板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= 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-
lnmp开启pathinfouser%205.1.1%20LMY47V%201%20release-
keys&macid=12a0fc64a12e5d8a1ef367d0bccb9690&_chat_id=0&manufacturer=smartisan HTTP/1.1
sig: 762a1b27c720f665e5a1c876ec8f9292
key: eb8cd4ef60fde7580260cf9cf4250a24
AuthToken:
js日期正则表达式MemberToken:
Accept: application/json
bisonContent-type: application/json
nsign: 1000252865b4adb0f09986bb81114dd3011f
Host: api.anjuke
Connection: Keep-Alive
Accept-Encoding: gzip
hbase是基于内存的吗User-Agent: okhttp/3.6.0
如果直接提交url的链接,会返回⼀个签名的错误。 从这个错误就可以知道,提交的信息中,需要签名信息。
也就是sig: 762a1b27c720f665e5a1c876ec8f9292 这个。
从每次提交的header来看,每次的签名都不⼀样。 因为提交的url数据⾥⾯,有⼀个是qtime,这个是与时间有关的数据。
qtime=20170813171637
这个很简单,通过
now=w()爬虫软件 app
qt= now.strftime("%Y%m%d%H%M%S")
就可以获得。
其他的url参数都是固定的,那么接下来就看是要怎样获取这个签名的⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论