python网络爬虫百度新闻代码
时间: 2025-06-05 10:12:29 浏览: 15
### Python 网络爬虫抓取百度新闻示例
以下是基于 `requests` 和 `BeautifulSoup` 的 Python 爬虫代码,用于从百度新闻中抓取相关内容。此代码通过向百度新闻的搜索接口发送请求,并解析返回的 HTML 数据来提取新闻标题和链接。
#### 示例代码
```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/91.0.4472.124 Safari/537.36'
}
# 关键词参数
keyword = "科技"
params = {'tn': 'news', 'word': keyword, 'cl': '2'}
try:
# 发送 GET 请求到百度新闻搜索接口
url = "https://www.baidu.com/s?"
response = requests.get(url, params=params, headers=headers)
# 检查响应状态码
if response.status_code != 200:
raise Exception(f"请求失败,状态码: {response.status_code}")
# 设置编码格式
response.encoding = response.apparent_encoding
# 使用 BeautifulSoup 解析 HTML 页面
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有的新闻条目
news_items = soup.find_all('div', class_='result') # 新闻条目的容器类名可能因版本而异,请确认实际页面结构
# 遍历并提取每一条新闻的信息
for item in news_items[:10]: # 提取前10条新闻作为示例
title_tag = item.find('a') # 获取新闻标题标签
link = title_tag['href'] if title_tag and 'href' in title_tag.attrs else None
# 打印新闻标题和链接
print(f"标题: {title_tag.get_text(strip=True)}")
print(f"链接: {link}\n")
except Exception as e:
print(f"发生错误: {e}")
```
---
#### 说明
1. **请求头配置**: 添加了 `User-Agent` 来伪装成浏览器访问网站[^2]。
2. **URL 参数定义**: 百度新闻支持通过 URL 参数传递关键词 (`word`) 进行搜索[^3]。
3. **HTML 解析工具**: 使用 `BeautifulSoup` 对返回的 HTML 文档进行解析,定位目标数据所在位置[^1]。
4. **异常处理**: 如果请求失败或者无法找到指定元素,则会捕获异常并提示用户[^2]。
请注意,由于百度新闻的具体页面布局可能会随时间变化调整,因此需要定期验证 CSS 类名或其他标志符是否仍然有效。
---
阅读全文
相关推荐


















