import requests from bs4 import BeautifulSoup # 设置请求头,避免被网站反爬虫机制拦截 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.3'} # 获取天气预报页面的 HTML 代码 url = 'http://www.weather.com.cn/weather/101010100.shtml' response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') # 提取天气预报信息 city = soup.select('.crumbs.fl a')[-1].text.strip() # 城市 date = soup.select('.today em')[0].text.strip() # 日期 temperature = soup.select('.tem span') # 温度 weather = soup.select('.wea') # 天气 # 打印天气预报信息 print(f'{city} {date} {temperature[0].text.strip()} {weather[0].text.strip()}')根据次代码,生成CSV文件
时间: 2024-02-23 17:56:15 浏览: 133
可以使用Python的csv模块将数据写入CSV文件中。修改你提供的代码,添加CSV文件写入功能,如下所示:
```python
import csv
import requests
from bs4 import BeautifulSoup
# 设置请求头,避免被网站反爬虫机制拦截
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.3'}
# 获取天气预报页面的 HTML 代码
url = 'http://www.weather.com.cn/weather/101010100.shtml'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
# 提取天气预报信息
city = soup.select('.crumbs.fl a')[-1].text.strip() # 城市
date = soup.select('.today em')[0].text.strip() # 日期
temperature = soup.select('.tem span') # 温度
weather = soup.select('.wea') # 天气
# 写入CSV文件
with open('weather.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['城市', '日期', '温度', '天气'])
writer.writerow([city, date, temperature[0].text.strip(), weather[0].text.strip()])
# 打印天气预报信息
print(f'{city} {date} {temperature[0].text.strip()} {weather[0].text.strip()}')
```
这段代码会在当前目录下生成一个名为 `weather.csv` 的文件,并将城市、日期、温度、天气写入其中。需要注意的是,如果文件已经存在,会覆盖原有的文件。你可以使用Excel等工具打开这个CSV文件,查看里面的数据。
阅读全文