本文主要介绍如何使用Python爬虫获取城市地铁数据的方法。
一、获取网页数据
首先,我们需要获取城市地铁网站的网页数据。可以使用Python中的requests库进行网页请求。
import requests
url = 'http://www.example.com'
response = requests.get(url)
#打印网页内容
print(response.text)
上述代码中,我们通过requests库获取了一个url为'http://www.example.com'的网页内容,并将内容打印出来。
二、解析HTML数据
获取到网页数据之后,我们需要对HTML进行解析。这里推荐使用Python中的BeautifulSoup库,可以方便的抽取HTML页面中的数据。
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())
上述代码中,我们通过BeautifulSoup对网页数据进行了解析,并将其以格式化的形式打印出来。
三、抽取地铁数据
接下来,我们需要从HTML中抽取地铁数据。可以通过查看网页源代码和使用开发者工具来确定数据所在位置。
list = []
for station in soup.select('#station-list a'):
name = station.find('span').text
line = station.find_previous('strong').text
list.append({"name":name, "line":line})
print(list)
上述代码中,我们使用select查询获取到所有id为station-list下的a标签,然后通过find方法抽取出站名和所属地铁线路,并添加到列表中。
四、存储数据
最后,我们需要将抽取到的地铁数据进行存储,可以使用Python中的csv库进行存储。
import csv
with open('subway.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["地铁线路", "地铁站名"])
for i in list:
writer.writerow([i['line'], i['name']])
上述代码中,我们打开一个名为subway.csv的文件,并将抽取到的数据写入其中,每行数据为地铁站名和所属地铁线路。
五、总结
通过上述方法,我们可以方便的使用Python爬虫获取城市地铁数据,并将其存储在本地文件中,方便后续的数据分析和处理。