來源:北京SEO 時間:2019-04-11
  seo日常擴詞要下拉詞,市面上還有刷百度下拉詞的,所以百度下拉詞的作用不必多說。如何批量獲取百度下拉詞呢?腳本如下:
 
  準備關鍵詞文件kwd.txt。(一行一個關鍵詞)
 
  結果會存儲為bdpc_xiala.txt。(結果沒有進行去重處理,近義詞一般會有相同的下拉詞)
 
  【百度下拉框的地址可以通過抓包找到】
 
  以前是這個:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=seo
 
  現在抓包是這個:https://www.baidu.com/sugrec?ie=utf-8&prod=pc&wd=seo
 
# ‐*‐ coding: utf‐8 ‐*‐
# python3.7版本
import requests
import re
import threading
import queue


# 獲取某詞下拉地址源碼
def get_html(url,retry=2):
    try:
        r = requests.get(url=url,headers=user_agent, timeout=5)
    except Exception as e:
        print('獲取源碼失敗', url, e)
        if retry > 0:
            get_html(url, retry - 1)
    else:
        html = r.text
        return html


# 提取下拉詞
def get_kwd():
    while 1:
        kwd = q.get()
        url = 'https://www.baidu.com/sugrec?ie=utf-8&prod=pc&wd={}'.format(kwd)
        html = get_html(url)
        if html:
            html_new = html.split('[') if '[' in html else html
            if (len(html_new)) > 0:
                kwd_list = re.findall(r'"q":"(.*?)"}', html_new[1], re.S|re.I)
            else:
                kwd_list = []
            for kwd_xiala in kwd_list:
                print(kwd_xiala)
                f.write(kwd_xiala+'\n')
        q.task_done()


if __name__ == "__main__":
    # 結果保存文件
    f = open('bdpc_xiala.txt','w',encoding='utf-8')
    # 關鍵詞隊列
    q = queue.Queue()
    for kwd in open('kwd.txt',encoding='utf-8'):
        kwd = kwd.strip()
        q.put(kwd)
    # UA設置
    user_agent = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
    # 設置線程數
    for i in list(range(10)):
        t = threading.Thread(target=get_kwd)
        t.setDaemon(True)
        t.start()
    q.join()
    f.flush()
    f.close()



羽毛球的规则