手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

之前写的一个关于抓西南航空的示例和方案

首页 > Ideas >
下面只是一个简单的示例和步骤

1、 首页查询OMA->OGG,点击搜索,会进入结果页,默认显示为第二天的价格,点击日期可以看到每天的价格 

2、 这时候的数据有两种获取方式 
    a) 请求API,通过浏览器生成的header头来请求,可以用webdriver模拟,速度较慢,但请求一次之后,可以得到API的数据。后续可以用这个API方式来模拟请求 
    b) 点击页面后,数据存储在sessionStorage中,通过解析sessionStorage来获取时间和价格 
3、 在route map页面,任意选择两个地点,只要能够到达,基本上都是通过API来获取数据 
---时间较短,没有细弄,现有的数据均通过python+selenium (with chrome)来获取。
 
针对2.1的方法,因为不可能一直使用chrome来抓取数据这样效率太低了,现在是做了一个测试,是可以通过加载chrome的prefLog,从LOG里找到请求/shopping的数据(也就是首页点击search以后的实际请求)。将对应的参数全部拉取出来。再使用python的Requests进行模拟请求,以获取实际的json数据。
 
后续又重新拉取了一份:直接将请求第二页的数据拉出来:
 
即,这些数据就是请求 json的结果,数据首次返回的时候是存在sessionStorage,结果如下:
 
看起来并没有太复杂的,但其实确实是踩坑不少,比如,你如果是直接用selenium来请求,就会被判非法、IP地址不太正常的情况被判非法、请求速度过快被判非法、直接请求页面也被判。
也是在经历了1天多之后,才相对比较稳定的抓取了指定线路的数据,后面因为被人嘲笑说就这?然后想想就放弃了,没必要,又不是靠这个吃饭,贴一下做个记录
 



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):