利用python爬取城市公交站点

本文介绍如何利用Python爬虫抓取城市公交站点信息,通过高德API获取经纬度,再进行数据清洗,包括Excel PQ和Python方法。在QGIS中进行坐标纠偏,推荐使用面向对象编程和PQ进行数据清洗,因为其速度和便利性更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用python爬取城市公交站点

页面分析

https://guiyang.8684.cn/line1

爬虫

我们利用requests请求,利用BeautifulSoup来解析,获取我们的站点数据。得到我们的公交站点以后,我们利用高德api来获取站点的经纬度坐标,利用pandas解析json文件。接下来开干,我推荐使用面向对象的方法来写代码。

import requests
import json
from bs4 import BeautifulSoup
import pandas as pd
​
​
class bus_stop:
 ## 定义一个类,用来获取每趟公交的站点名称和经纬度
 def __init__(self):
 self.url = 'https://guiyang.8684.cn/line{}'
 self.starnum = []
 for start_num in range(1, 17):
 self.starnum.append(start_num)
 self.payload = {}
 self.headers = {
 'Cookie': 'JSESSIONID=48304F9E8D55A9F2F8ACC14B7EC5A02D'}
 ## 调用高德api获取公交线路的经纬度
 ### 这个key大家可以自己去申请
 def get_l
Python爬取公交线路通常涉及到网络爬虫技术,可以利用如requests库发送HTTP请求获取公交线路信息,然后结合BeautifulSoup、lxml等库解析HTML页面提取数据。以下是一个简单的步骤: 1. **安装必要的库**:首先需要安装`requests`库用于发送HTTP请求,以及如`beautifulsoup4`或`lxml`库用于解析HTML。 ```bash pip install requests beautifulsoup4 ``` 2. **编写代码**:创建一个Python脚本,通过GET请求访问公交路线查询网站,例如城市公交官网的API或者公开的数据接口。 ```python import requests from bs4 import BeautifulSoup def get_bus_routes(city): url = f"https://your_city_public_transport_api/{city}" response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') routes = soup.find_all('div', class_='bus-route') # 假设公交路线信息包含在这个类名下 for route in routes: name = route.find('span', class_='route-name').text # 可能还有其他详细信息,如编号、站点等,按需提取并处理 print(name) else: print("Failed to fetch data. Status code:", response.status_code) # 调用函数,传入你想查询的城市名 get_bus_routes('北京') ``` 3. **注意事项**: - 网站的结构可能会变化,实际爬取时要查看网页源代码找到正确的元素选择器。 - 很多公共运输API可能有使用限制,如频率、请求头设置等,需遵守相关规定。 - 避免频繁爬取造成服务器压力,尊重网站的robots.txt文件,并进行适当的延时处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值