8684网站爬取北京公交路线站点信息。

Theodosia ·
更新时间:2024-09-20
· 829 次阅读

网址: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('
  1. <a href="/(.*)
<!-- -->
',da) dd=str(stas).split('
  • <a href="/') pat=re.compile(r'[\u4e00-\u9fa5]+') t=pat.findall(str(dd)) sts=[] for i in range(0,len(t)): sts.append(t[i]) # return sts # trip=re.findall('
    (.*)
  • 需要 登录 后方可回复, 如果你还没有账号请 注册新账号