用Python简写大学生能看懂的爬取百度热搜榜前50,通过xpath获取网页热搜标题和热搜指数并将数据写入excel表
时间: 2024-11-14 20:20:03 浏览: 1
Python微博热搜榜信息爬取项目.zip
3星 · 编辑精心推荐
首先,你需要安装一些必要的库,如`requests`用于发送HTTP请求,`lxml`或`BeautifulSoup`用于解析HTML,以及`pandas`来处理Excel数据。以下是简单的步骤:
1. 安装所需库:
```bash
pip install requests lxml pandas
```
2. 使用Python编写爬虫:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 发送GET请求到百度热搜榜页面
url = "https://top.baidu.com/buzz"
response = requests.get(url)
# 检查请求是否成功,如果返回状态码不是200,说明请求失败
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'lxml')
# 查找热搜条目列表
hot_list = soup.select('.hot-list li')
# 创建空的数据框来存储结果
data = {
'标题': [],
'热度指数': []
}
for item in hot_list[:50]: # 取前50个
title = item.select_one('.title a').text # 获取标题
rank = item.select_one('.rank')['data-rank'] # 获取热度指数,注意这取决于实际HTML结构,这里假设存在'data-rank'属性
data['标题'].append(title)
data['热度指数'].append(rank)
# 将数据写入Excel文件
df = pd.DataFrame(data)
df.to_excel('百度热搜榜_前50.xlsx', index=False)
else:
print("抓取失败,状态码:", response.status_code)
```
这个脚本会尝试从指定URL抓取百度热搜榜的前50个热点,然后将标题和热度指数保存到名为`百度热搜榜_前50.xlsx`的Excel文件中。
**相关问题:**
1. 如果遇到网页结构改变,如何修改代码继续运行?
2. 如何定期自动抓取并更新热搜榜?
3. 需要注意哪些网站使用条款或robots.txt规定,避免违反爬虫规则?
阅读全文