吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2515|回复: 27
收起左侧

[Python 原创] 苏州公交查询

  [复制链接]
caliph21 发表于 2022-10-27 17:09
[Python] 纯文本查看 复制代码
import requests,re,json,time

from pprint import pprint

from prettytable import PrettyTable

import prettytable as pt

#print(time.localtime(time.time()))

#print(time.asctime(time.localtime(time.time())))



	

def get_line(word):	

	headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Mobile Safari/537.36'}

	

	url='https://szgj.2500.tv/line/search?keyword={}'.format(word)

	res=requests.get(url,headers=headers)

	#print(res.status_code)

	#print(res.content.decode())

	name=re.findall('<div class="buslinename">(.*?)</div>',res.text,re.S)[0]

	linetosl=re.findall('div class="buslineto sltext">(.*?)</div>',res.text,re.S)

	route=re.findall('<div class="routeline" onclick=.*?<a href="(.*?)">',res.text,re.S)

	

	#print(code)

	print(1,linetosl[0])

	print(2,linetosl[1])

	select=input('pls select bus route:')

	if select=='1':return name,linetosl[0],route[0]

	else:return name,linetosl[1],route[1]

	

def bus_luxian(name,linetosl,route):

	headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Mobile Safari/537.36'}

	code=route.split('=')[1]

	res=requests.get(route,headers=headers)

	#print(res.status_code)

	#print(res.content.decode())

	nums=re.findall('div class="stationnum.*?">(.*?)</div>',res.text,re.S)

	ids=re.findall('<div class="stationdetail" data-sid="(.*?)"></div>',res.text,re.S)

	#sname=re.findall('<div class="stationname".*?>(.*?)</div>',res.text,re.S)      

	snames=re.findall('onclick="gotoStation.*?">(.*?)</div>',res.text,re.S)

	#print(len(nums),len(ids),len(snames))         

	

	#获取运行中的公交车和时间         

	url='https://szgj.2500.tv/api/v1/busline/bus?line_guid={}'

	res=requests.get(url.format(code),headers=headers)

	#print(res.status_code)

	js=json.loads(res.content.decode())

	#json=json.loads(res.text)

	#pprint(json['data'])

	print('--------------------------')

	print('公交:',name)

	print('线路:',linetosl)

	print('下一班:',js['data']['nextBus'],js['data']['nextShift'],'\n')

	

	info=js['data']['standInfo']

	#print(list(info.keys)[0])

	items=list(info.items())

	infos=[]

	

	for i in range(len(ids)):infos.append(' '*19)

	for key,value in items:

		

		#print(value[0]['busInfo'])

		#print(value[0]['inTime'])

		area=ids.index(key)

		infos[area]=value[0]['inTime']+' '+value[0]['busInfo']

		#print(len(infos[area]))

	

	#print(infos)

	#print(snames)

	tb = PrettyTable()

	tb.align = 'r'

	tb.add_column('id',nums)

	tb.add_column('info',infos)

	tb.add_column('id',snames)

	#print(tb)

	tb.align = 'l'

	print('\033[1;37m{}\033[0m'.format(tb))



def bus_run():

	#while True:

	print(time.asctime(time.localtime(time.time())))		

	word=input('-> Enter bus num: ')

	line=get_line(word)

	luxian=bus_luxian(line[0],line[1],line[2])

	

if __name__=='__main__':

	bus_run()

	

免费评分

参与人数 3吾爱币 +8 热心值 +3 收起 理由
wushaominkk + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ysy2001 + 1 + 1 谢谢@Thanks!
Takitooru + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| caliph21 发表于 2023-3-9 10:47
今日苏州公交,403浏览器禁止访问了,解决办法:
替换headers
headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 10; SP300 Build/CMDCSP300; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5015 MMWEBSDK/20230202 MMWEBID/2257 MicroMessenger/8.0.33.2320(0x2800213D) WeChat/arm64 Weixin NetType/5G Language/zh_CN ABI/arm64',
        'X-Requested':'com.tencent.mm',
        'Referer': 'https://szgj.2500.tv/',
        'Upgrade-Insecure-Requests': '1'}
xuysss 发表于 2022-10-27 17:12
stertao 发表于 2022-10-27 17:12
ginobili84 发表于 2022-10-27 17:15
学习中,谢谢分享
panya806 发表于 2022-10-27 17:17
厉害厉害&#128077;&#127995;
wangding0625 发表于 2022-10-27 17:19
感谢分享
whatiwhere 发表于 2022-10-27 17:24
qs 能用
bus.pic.jpg
yzx159357123 发表于 2022-10-27 17:41
哈哈哈哈哈哈哈哈哈哈哈哈哈哈感谢分享
4899 发表于 2022-10-27 18:00
这是苏州的兄弟么
假笑 发表于 2022-10-27 18:18
这个可以做课设喔
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表