爬虫如何爬取有变量的 URL?似乎是网站 js 自动生成的

2017-11-14 17:22:14 +08:00
 alphab

想用爬中爬取途牛网的机票信息,大概每 10 分钟爬去一次来获取最新票价

抓包到的票价 api 请求为: https://flight-api.tuniu.com/query/flight/v1/asyncProd?callback=jQuery17206316937206666016_1510628406488&{"responseId":"ec43b49b-c8e7-11e7-9d34-4603a1ce7740","groupIds":["0","6","1","2","3","4","5"]}&_=1510628408803

这个请求的网址大概每 5 分钟后就会失效,我推测是 callback=jQuery17206316937206666016_1510628406488 这一串变量需要不断的生成最新的

但我对 js 几乎是 0 基础,折腾了一下午都没有找到如何来获取这个变量,还望大佬们能详细的指点迷津。

机票查询网址是: http://flight.tuniu.com/city_BJS_CAN/?start=2017-11-17

3243 次点击
所在节点    Python
9 条回复
BiggerLonger
2017-11-14 17:29:28 +08:00
1510628406488 很明顯是 timestamp 吧?
alphab
2017-11-14 17:35:13 +08:00
@BiggerLonger 嗯,时间戳,只是这个不知如何破? jQuery17206316937206666016
crab
2017-11-14 17:36:14 +08:00
@alphab 那是回调函数名,写固定都可以,不影响。
vtwoextb
2017-11-14 17:37:56 +08:00
和 callback=jQuery17206316937206666016_1510628406488 这个无关 这只不过是 jsonp 格式 请求数据,我刚才测试了一下 途牛应该是 根据 ip 请求次数过于频繁途牛直接给你返回错误了,你等一会在请求 数据是能出来的,看目前情况 你刷的太频繁了 可能会把你的 ip 列入黑名单。我原来也遇到过这种问题 写了一个 动态换 ip 的爬虫 https://github.com/hizdm 你可以参考一下
p2pCoder
2017-11-14 17:38:04 +08:00
callback 是生成用来解决跨域的吧,一般是 jsonp 或者 jquery 加时间戳,你这个中间加了一些随机参数之类
一般是 jquery 的 $.ajax 或者$.getJson 自动生成的
alphab
2017-11-14 18:06:10 +08:00
@vtwoextb 感谢,这个 php 版本如何接入 python ? 还是要单独的运行, 大佬有没有详细点的使用说明,小白不知道该如何用...
vtwoextb
2017-11-15 08:54:03 +08:00
@alphab 你可以用 python 语言按照 php 代码的逻辑实现 或者 用 python 调用 php 代码也可以
hjl87423050
2017-11-16 21:51:42 +08:00
alphab
2017-11-19 12:12:51 +08:00
@hjl87423050 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX