网址:https://beijing.8684.cn/
通过点击1,2,3等发现网址为https://beijing.8684.cn/list1,2,3。
点击某一路,如10路,网址为https://beijing.8684.cn/x_8234e473。。采用quote(wd, encoding=“utf-8”)这样,还是不一样,笔者比较菜,应该是编码的问题,有谁知道欢迎留言。
本博客的思路就成了,首先获取1-9开头的公交的所有网址,而后通过解析获取,某路的站点信息,描述信息等。站点的经纬度信息通过百度API获取。
import requests
from urllib.parse import quote
import re
import pandas as pd
#x_5085a6b6
import time
def get_data(ur):
url=r'https://beijing.8684.cn/x_'+ur
da=requests.get(url)
da.encoding='utf-8'
da=da.text
return da
def extract_info(da):
Class = re.findall('(.*)<a href="/line1', da, re.S)
category=re.findall('(.*)
',da)
descr=re.findall('- (.*)
- 票价',da)
price_descr=re.findall('票价信息:(.*)
- 公交公司',da)
print(Class[0],category[0],descr[0],price_descr[0])
stas=re.findall('
效果图
笔者对爬虫涉猎不多,代码能力也很粗糙,欢迎大佬批评指正。读者可将这些信息保存只表中,有了经纬度信息,就可利用arcgis软件进行数字化展示。