用python从交大新闻网主页新闻栏目(http://news.xjtu.edu.cn/zyxw.htm)爬取最新的100 条新闻内容的代码,并保存在news.txt文件中
时间: 2024-02-26 18:53:30 浏览: 96
好的,可以用python的requests和BeautifulSoup库来实现这个爬虫任务。下面是代码实现:
```python
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'}
# 发送请求
url = 'http://news.xjtu.edu.cn/zyxw.htm'
response = requests.get(url, headers=headers)
# 解析HTML
soup = BeautifulSoup(response.content, 'html.parser')
news_list = soup.find_all('div', class_='newslist')[0].find_all('li')
# 获取最新的100条新闻
news_content = []
for news in news_list[:100]:
news_url = news.find('a')['href']
news_title = news.find('a').text.strip()
news_time = news.find('span').text.strip()
news_response = requests.get(news_url, headers=headers)
news_soup = BeautifulSoup(news_response.content, 'html.parser')
news_content.append({'title': news_title, 'time': news_time, 'content': news_soup.find('div', class_='wp_articlecontent').text.strip()})
# 保存到文件
with open('news.txt', 'w', encoding='utf-8') as f:
for news in news_content:
f.write(f"{news['title']}\n{news['time']}\n{news['content']}\n\n")
```
这个代码会首先发送请求获取新闻网页的HTML,然后用BeautifulSoup库解析HTML,找到新闻列表的每个新闻的标题、发布时间和链接,再分别请求每个新闻的链接来获取新闻的内容。最后将每个新闻的标题、发布时间和内容保存到news.txt文件中。
阅读全文