利用网站爬取历届奥林匹克奥运会奖牌并生成csv且不用请求头代码
时间: 2024-10-20 13:16:45 浏览: 23
网站爬虫抓取奥林匹克奥运会奖牌数据并将其转换为CSV文件通常需要使用Python编程语言配合一些网络爬取库,如BeautifulSoup或Scrapy,以及数据处理库pandas。这里是一个简化版的例子,假设我们只关注HTML页面结构,并不需要处理复杂的登录或反爬机制:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 目标URL,假设是奥运会奖牌榜的链接
url = "https://example.com/olympic_medals"
def get_html_data(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print("Failed to fetch data. Status code:", response.status_code)
return None
def parse_html(html_content):
soup = BeautifulSoup(html_content, 'html.parser')
# 根据网页结构提取奖牌信息
# 这部分可能会有所不同,需要找出比赛名称、国家名、金牌数等元素
medals_dict_list = [] # 创建空列表保存数据
for row in soup.find_all('div', class_='medal-row'):
country_name = row.find('span', class_='country').text.strip()
gold_count = row.find('div', class_='gold').text.strip()
silver_count = row.find('div', class_='silver').text.strip()
bronze_count = row.find('div', class_='bronze').text.strip()
medals_dict_list.append({
'Country': country_name,
'Gold': gold_count,
'Silver': silver_count,
'Bronze': bronze_count
})
return medals_dict_list
def save_to_csv(data, filename='olympic_medals.csv'):
df = pd.DataFrame(data)
df.to_csv(filename, index=False)
html_content = get_html_data(url)
if html_content:
medals_data = parse_html(html_content)
save_to_csv(medals_data)
print(f"数据已成功保存到'{filename}'")
阅读全文