爬取北京公交车信息 爬取北京公交车信息(https://beijing.8684.cn):公交车名称(lineName),运行时间(time),票价信息(price),所属公司(campony),往返线路(upline和downline),并将其保存在bus_messages.csv文件中。
时间: 2023-06-27 12:01:18 浏览: 148
爬取北京市公交线路信息
好的,我可以帮你编写一个简单的 Python 爬虫来实现这个功能。我们需要使用 requests 和 BeautifulSoup 库来获取和解析网页信息,并使用 csv 库将数据保存到文件中。以下是代码实现:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 设置请求头,模拟浏览器请求
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
}
# 发送请求,获取网页内容
url = "https://beijing.8684.cn"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
# 查找公交车信息
bus_list = soup.find_all("div", class_="bus-item")
# 将信息保存到文件中
with open("bus_messages.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["线路名称", "运行时间", "票价信息", "所属公司", "上行线路", "下行线路"])
for bus in bus_list:
line_name = bus.find("a").text
time = bus.find("div", class_="bus-desc").find_all("div")[0].text.strip()
price = bus.find("div", class_="bus-desc").find_all("div")[1].text.strip()
company = bus.find("div", class_="bus-desc").find_all("div")[2].text.strip()
up_line = bus.find("div", class_="bus-line").find_all("a")[0].text.strip()
down_line = bus.find("div", class_="bus-line").find_all("a")[1].text.strip()
writer.writerow([line_name, time, price, company, up_line, down_line])
```
这段代码会将公交车信息保存到名为 bus_messages.csv 的文件中,你可以在文件夹中找到它。注意,如果追加信息,需要修改打开文件的方式,使用 "a" 模式。
阅读全文