【Python爬虫】爬取公共交通站点数据

本文介绍了使用Python爬虫从8684网站抓取武汉市公共交通站点名称,并结合高德开放平台的地理编码功能获取站点经纬度。通过requests、BeautifulSoup、json和xlwt库处理数据,自定义坐标转换库Coordin_transformlat将火星坐标转换为WGS-84坐标。爬取分为两步:一是按线路分类爬取8684网站的公交站点,二是利用高德地理编码查询经纬度。注意,高德地图采用火星坐标,需转换,且数据受限于8684网站的更新和准确性。
摘要由CSDN通过智能技术生成

 

首先,先介绍一下爬取公交站点时代码中引入的库。

  • requests:使用HTTP协议向网页发送请求并获得响应的库。
  • BeautifulSoup:用于解析HTML和XML网页文档的库,简化了页面解析和信息提取的过程。
  • json:用于处理JSON格式数据的库。
  • xlwt:用于将数据写入Excel文件中的库。
  • Coordin_transformlat:自定义的一个坐标转换库。在这个爬虫项目中,它被用来将高德地图提供的火星坐标系转换成WGS-84坐标系,即调用gcj02towgs84函数来实现这一功能。
import requests
from bs4 import BeautifulSoup
import json
import xlwt
from Coordin_transformlat import gcj02towgs84

那么接下来的公共交通站点数据的爬取主要分为两个部分,第一部分从8684网站中爬取公共交通站点的名称,第二部分利用高德开放平台的地理编码功能查询对应公共交通站点的经纬度。

 

1. 8684网站爬取公共交通站点名称

我在这里以武汉市为例,以下是在8684网站查询武汉市公共交通的页面。

我们可以看到这个网页的网址是“https://wuhan.8684.cn/”,这个就是我们在代码中填入的需要爬取的网址。然后我们看下方,在这里公交线路可以按照三种方式来进行查询,分别是“以数字开头”、“以汉字/字母开头”、“线路分类”,因为我需要爬取的公共交通站点能够按地铁、公交等进行区分,所以主要使用按“线路分类”来进行爬取,但是部分城市的线路分类下的公交线路是没有的,所以只能按照数字+字母的方式来爬取。

a7fc00aec262448596201c0bcdc1d890.png

 

下面的这部分代码主要是获取了线路分类下的多个子类的网页。

url = 'https://wuhan.8684.cn/'   #此处需要修改,共7处
response = requests.get(url=url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'})
print(response. status_code)
#获取数据并解析
soup = BeautifulSoup(response.text, 'lxml')
soup_buslayer = soup.find('div'
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值