背景

百度搜索框下拉关键词又称百度搜索框下拉联想词,可以根据用户实时输入进行推荐联想词,这些词其实都可以作为关键词或长尾词来做的,如果通过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')