下面只是一个简单的示例和步骤
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天多之后,才相对比较稳定的抓取了指定线路的数据,后面因为被人嘲笑说就这?然后想想就放弃了,没必要,又不是靠这个吃饭,贴一下做个记录