爬取《求是》2019年第1期网站的网页中每个新闻的UR地址、标题以及打开每个新闻网址后每个新闻的具体内容的python代码
时间: 2024-10-10 16:05:24 浏览: 26
2019年管理信息系统分析报告.pdf
要爬取《求是》杂志2019年第1期网站上每篇新闻的URL、标题和内容,我们可以使用Python的requests库获取网页内容,BeautifulSoup解析HTML,然后提取所需信息。由于实际网站结构可能会有所不同,这里提供一个基本的示例,假设网站有固定的新闻列表布局:
```python
import requests
from bs4 import BeautifulSoup
# 指定《求是》杂志2019年第1期的URL
url = "https://www.qstheory.cn/jczt/2019/01/" # 这里只是一个示例,需要替换为实际URL
def fetch_news(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
# 假设新闻列表在`div`标签内,例如`.news-item`
news_list = soup.find_all('div', class_='news-item')
for news in news_list:
title = news.find('h2') or news.find('a') # 根据实际HTML找title,这里是h2或a元素
if title:
title_text = title.text.strip()
# 提取链接,通常在href属性中
link = news.find('a')['href']
# 获取新闻内容,这里只是简单的展示如何获取,实际可能需要发送新的请求
content_url = url + link
try:
content_response = requests.get(content_url)
content_soup = BeautifulSoup(content_response.text, 'lxml')
article_content = content_soup.get_text().strip() # 获取纯文本内容
except requests.exceptions.RequestException as e:
print(f"Failed to fetch content: {e}")
article_content = "Not available"
print(f"URL: {link}\nTitle: {title_text}\nContent: {article_content}\n---")
fetch_news(url)
```
请注意,这个示例假设了HTML结构相对固定,并且存在`class='news-item'`的容器来包裹每条新闻。如果网站的实际结构发生变化,可能需要调整查找元素的方式。同时,抓取网站内容时请遵守该网站的robots.txt规则并尊重版权。
阅读全文