【Python】爬取网易新闻今日热点信息并导出
要爬取网易新闻的今日热点信息并导出,您可以使用Python的requests
库来获取网页内容,使用BeautifulSoup
来解析HTML,提取所需信息。然后,可以将数据导出到CSV文件。以下是一个简单的示例代码:
import requests
from bs4 import BeautifulSoup
import csv
def fetch_news():
url = 'https://news.163.com/' # 网易新闻主页
response = requests.get(url)
if response.status_code != 200:
print("Failed to retrieve the page")
return []
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 查找热点新闻部分(假设热点新闻在特定的HTML结构中)
headlines = []
for item in soup.find_all('div', class_='some-class'): # 这里需要根据实际的HTML结构调整
title = item.find('a').text
link = item.find('a').get('href')
if title and link:
headlines.append({
'title': title.strip(),
'link': link.strip()
})
return headlines
def export_to_csv(news_list, filename='netease_news.csv'):
with open(filename, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=['title', 'link'])
writer.writeheader()
for news in news_list:
writer.writerow(news)
def main():
news = fetch_news()
if news:
export_to_csv(news)
print("Exported successfully to netease_news.csv")
else:
print("No news to export.")
if __name__ == '__main__':
main()
注意事项:
HTML解析:网易新闻网站的HTML结构可能会随着时间而变化,您需要使用开发者工具(如Chrome DevTools)来检查网页结构,并根据实际情况调整
find_all
或find
的方法中的标签、类名等。反爬机制:如果频繁访问,会触发网站的反爬虫机制。可以通过添加请求头(如User-Agent)等方式来减轻这种影响。
法律合规性:在爬取数据之前,请确保符合网站的使用条款及相关法律法规。
动态加载内容:如果热点新闻是通过JavaScript动态加载的,您可能需要使用Selenium等工具来处理。