-对于网络我是个刚入门的小白
-在北京实习因为总是错过公交,而每一趟要隔很久,所以想要写个程序得到公交实时信息,早上起床自动提醒
-请求链接如下:
http://www.bjbus.com/home/ajax_search_bus_stop_token.php?act=busTime&selBLine=381&selBDir=5629881218517385976&selBStop=13
f12 查看 cookie 会填入当前 time(距离 1970 年毫秒数),其他数据都是固定的
用 requests 请求代码如下:
import requests
import time
url='http://www.bjbus.com/home/ajax_search_bus_stop_token.php'
reqParams={
'act':'busTime',
'selBLine':381,
'selBDir':5629881218517385976,#线路方向 数值固定
'selBStop':2
}
serverTime=str(int(time.time()))
cookies={
'Hm_lpvt_2c630339360dacc1fc1fd8110f283748':'1470364087',
'Hm_lvt_2c630339360dacc1fc1fd8110f283748':'1470278160', #这两个时间在一段时间内固定,还没找到生成规律
'PHPSESSID':'e277b63c1cacef68986b6d6f14687384',
'SERVERID':'c40443f9636cc324fbdb5c25c09256b6|'+
str(serverTime)+'1470362358'#只有第一个时间是变化的,后面这个也是一段时间内固定
}
headers={
'Connection':'keep-alive',
'Accept':'application/json,text/javascript,*/*;q=0.01',
'X-Requested-With':'XMLHttpRequest',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',
'Referer':'http://www.bjbus.com/home/fun_rtbus.php?uSec=00000160&uSub=00000162&sBl=381&sBd=5629881218517385976&sBs=2',
'Accept-Encoding':'gzip, deflate, sdch',
'Accept-Language':'zh-CN,zh;q=0.8',
}
r=requests.get(url,params=reqParams, headers=headers,cookies=cookies)
print(serverTime)
print(r.content) #返回 timeout 不知为何
希望各位指教,多谢了!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.