python数据分析和可视化大作业01_爬虫部分
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头,伪装为浏览器访问
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'}
def get_soup(url):
response = requests.get(url, headers=headers) # 发送请求
soup = BeautifulSoup(response.text, 'html.parser') # 解析网页
return soup
def get_data(soup):
data = []
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag): # 确保 tr 是一个标签
tds = tr('td')
data.append({
'Rank': tds[0].text,
'Name': tds[1].text,
'Province/Country': tds[2].text,
'Confirmed': tds[3].text,
'Recovered': tds[4].text,
'Deaths': tds[5].text
})
return data
def save_data(data, filename):
df = pd.DataFrame(data)
df.to_csv(filename, index=False)
# 主函数
def main():
url = 'https://www.worldometers.info/coronavirus/'
soup = get_soup(url)
data = get_data(soup)
save_data(data, 'data.csv')
if __name__ == '__main__':
main()
这段代码实现了从世界病毒病统计网站爬取2020年COVID-19疫情数据的功能。首先,设置了请求头以伪装成浏览器,防止被网站封禁。然后定义了一个获取网页BeautifulSoup对象的函数get_soup
,一个解析数据并返回列表的函数get_data
,以及一个保存数据到CSV文件的函数save_data
。最后,在main
函数中调用这些函数来完成数据的爬取和保存。
评论已关闭