Python爬取百度指数
时间: 2023-11-05 11:19:25 浏览: 222
爬取百度指数 代码,如果cookies失效的,麻烦替换下,爬取关键词和访问量,并保存csv
要使用Python爬取百度指数,可以通过以下步骤进行:
1. 安装相关库:需要安装 requests、BeautifulSoup4、pandas 和 xlwt 库。
2. 获取百度指数的cookies:在浏览器上登录百度账号,然后在“开发者工具”中查找到“Application”栏下的“Cookies”,找到“BDUSS”和“STOKEN”两个值。
3. 构建请求链接:根据搜索关键词、起始日期和结束日期构建请求链接。请求链接的格式为:
http://index.baidu.com/api/SearchApi/index?word={}&startDate={}&endDate={}
4. 发送请求:使用 requests 库发送请求,并将 cookies 和请求头添加到请求中。
5. 解析响应:使用 BeautifulSoup4 库解析响应,并将数据保存到 pandas 数据框中。
6. 导出数据:使用 xlwt 库将数据导出到 Excel 文件中。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import xlwt
# 百度指数请求链接
url = 'http://index.baidu.com/api/SearchApi/index?word={}&startDate={}&endDate={}'
# 搜索关键词
keyword = 'Python'
# 起始日期和结束日期
start_date = '20210101'
end_date = '20210131'
# cookies
cookies = {
'BDUSS': 'xxxxx',
'STOKEN': 'xxxxx'
}
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}
# 发送请求
response = requests.get(url.format(keyword, start_date, end_date), cookies=cookies, headers=headers)
# 解析响应
soup = BeautifulSoup(response.content, 'lxml')
data = soup.find_all('data')
# 保存数据到 pandas 数据框
df = pd.DataFrame()
for item in data:
df = df.append({
'date': item['x'],
'index': item['y']
}, ignore_index=True)
# 导出数据到 Excel 文件
writer = pd.ExcelWriter('baidu_index.xlsx')
df.to_excel(writer, index=False)
writer.save()
```
注意:需要替换掉示例代码中的 cookies 和搜索关键词。另外,百度指数的请求链接可能会发生变化,需要根据实际情况进行调整。
阅读全文