背景
百度搜索框下拉关键词又称百度搜索框下拉联想词,可以根据用户实时输入进行推荐联想词,这些词其实都可以作为关键词或长尾词来做的,如果通过python3代码来实现抓取百度搜索框下拉关键词呢?下面来看具体python3如何实现
脚本思路
要抓取百度搜索框下拉关键词(又称百度搜索框下拉联想词),你实际上是要模拟用户输入时浏览器向百度服务器发送的请求,并解析返回的HTML页面来获取这些联想词。这个过程涉及到HTTP请求和json解析,可以使用Python的requests库来发送HTTP请求,使用json库来解析请求结果。
下面是一个简单的Python脚本示例,演示了如何使用requests和json来抓取百度搜索框下拉关键词。这个脚本只是一个基本的起点,并不能保证在所有情况下都能成功抓取联想词,因为百度可能会随时更改其页面结构或反爬策略。
代码
import requests,json,time
def baidu_keys(k):
t = int(round(time.time()*1000))
link = 'https://www.baidu.com/sugrec?'
head = {
'Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Host': 'www.baidu.com',
'Referer': 'https://www.baidu.com/',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
}
para = {
'pre': '1',
'p': '3',
'ie': 'utf-8',
'json': '1',
'prod': 'pc',
'from': 'pc_web',
'wd': k,
'req': 2,
'bs': k,
'pbs': k,
'csor': '6',
'pwd': k,
'sugmode': 2,
'hot_launch': 0,
'_': t,
}
resp = requests.get(link,headers=head,params=para).json()
# print(resp)
if 'slid' in resp:
print('OK')
keys = resp['g']
# print(keys)
keys_list = []
for i in keys:
# print(i)
keys_list.append(i['q'])
web_key = ','.join(keys_list)
print(web_key)
else:
print('not keys')
baidu_keys('python')