Python爬取百度搜索相关关键词和下拉建议,代码无法运行,问题排查指南
以下代码旨在使用Python爬取百度搜索相关关键词和下拉建议,并保存到Excel表格中。但代码无法正常运行,可能是以下原因导致:
- 确认网络连接是否正常,是否能够正常访问百度网站。
- 确认代码中使用的关键字是否正确,是否有特殊字符等导致无法成功搜索。
- 检查Excel文件是否已经打开,是否有权限对其进行写入操作。
- 检查是否安装了最新版本的requests、BeautifulSoup和openpyxl库,如果没有则尝试更新或重新安装。
import requests
from bs4 import BeautifulSoup
import openpyxl
def get_related_keywords(keyword):
url = 'https://www.baidu.com/s'
params = {
'wd': keyword,
'rn': '10',
'tn': 'baidurt',
'ie': 'utf-8',
'rqlang': 'cn',
'rsv_dl': 'tb',
'rsv_srlang': 'cn',
'rsv_rq': 'off'
}
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'
}
res = requests.get(url, params=params, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
related_keywords = []
for related in soup.select('.tip'):
related_keywords.append(related.text.strip())
return related_keywords
def get_dropdown_keywords(keyword):
url = 'https://www.baidu.com/sugrec'
params = {
'prod': 'pc',
'wd': keyword,
'cb': 'window.baidu.sug'
}
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'
}
res = requests.get(url, params=params, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
dropdown_keywords = []
for dropdown in soup.select('.suglist li'):
dropdown_keywords.append(dropdown.text.strip())
return dropdown_keywords
def save_to_excel(data):
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['Keyword', 'Related Keywords', 'Dropdown Keywords'])
for row in data:
ws.append(row)
wb.save('keywords.xlsx')
if __name__ == '__main__':
keywords = ['Python', '数据分析', '机器学习']
data = []
for keyword in keywords:
related_keywords = get_related_keywords(keyword)
dropdown_keywords = get_dropdown_keywords(keyword)
row = [keyword, ', '.join(related_keywords), ', '.join(dropdown_keywords)]
data.append(row)
save_to_excel(data)
通过检查以上几个方面,您应该能够找到代码无法运行的原因并解决问题。
**提示:**建议您使用代码调试工具,逐步排查代码,观察代码执行过程,找到问题所在。
原文地址: https://www.cveoy.top/t/topic/mA9Z 著作权归作者所有。请勿转载和采集!