惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
腾讯CDC
博客园_首页
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
博客园 - 叶小钗

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
python多线程采集百度pc相关搜索词-互联网IT百科
2020-08-24 · via 老董笔记

  除了搜索框下拉词,搜索结果相关搜索词词是扩词一个的渠道。批量获取百度相关搜索词脚本如下:

  1、准备关键词文件kwd.txt。(一行一个关键词)

  2、结果会存储为bdpc_xg.txt。(结果没有进行去重处理,近义词一般会有相同的下拉词)

  3、线程数默认是1,现在百度反爬比之前严重!线程最好是1。【多线程写同一个文件需要加锁否则可能数据错乱】

# ‐*‐ coding: utf‐8 ‐*‐
"""
kwd.txt,一行一个关键词
采集相关搜索词
默认线程1
"""
import requests
import threading
import queue
from pyquery import PyQuery as pq
import time
import gc


# 获取某词serp源码
def get_html(url, retry=2):
    try:
        r = requests.get(url=url, headers=my_header, timeout=5)
    except Exception as e:
        print('获取源码失败', e)
        time.sleep(6)
        if retry > 0:
            get_html(url, retry - 1)
    else:
        html = r.content.decode('utf-8', errors='ignore')  # 用r.text有时候识别错误
        url = r.url  # 反爬会重定向,取定向后的地址
        return html, url


# 提取相关词
def get_kwds(html,url):
    kwds = []
    doc = pq(html)  # 偶尔有问题,强制转str
    title = doc('title').text()
    if '_百度搜索' in title and 'https://www.baidu.com/s?tn=48020221' in url:
        # 无相关搜索,不会报错
        xg_kwds = doc('#rs table tr th a').items()
        for kwd_xg in xg_kwds:
            kwd_xg = kwd_xg.text()
            kwds.append(kwd_xg)
    else:
        print('源码异常,可能反爬')
        time.sleep(100)
    return kwds


# 线程函数
def main():
    while 1:
        kwd = q.get()
        url = 'https://www.baidu.com/s?tn=48020221_28_hao_pg&ie=utf-8&wd={}'.format(kwd)
        try:
            html,now_url = get_html(url)
            kwds = get_kwds(html,now_url)
        except Exception as e:
            print(e)
        else:
            for kwd in kwds:
                f.write(kwd + '
')
                print(kwd)
            f.flush()
        finally:
            del kwd,url
            gc.collect()
            q.task_done()


if __name__ == "__main__":
    # 结果保存文件
    f = open('bdpc_xg.txt','w',encoding='utf-8')
    # 关键词队列
    q = queue.Queue()
    for kwd in open('kwd.txt',encoding='utf-8'):
        kwd = kwd.strip()
        q.put(kwd)
    # UA设置
    my_header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
        'cookie':'wpr=0;rl__test__cookies=1576231586613; BDICON=10123156; BIDUPSID=95E739A8EE050812705C1FDE2584A61E; PSTM=1563865961; BAIDUID=95E739A8EE050812705C1FDE2584A61E:SL=0:NR=10:FG=1; BDUSS=NMRzZPVUFqR0JtbzJJc1ZDdkx2MGtiQUpvWVNUSjhnSUFmRFRmTnpDdmpGcXhkRVFBQUFBJCQAAAAAAAAAAAEAAADag5oxzI2IkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOJhF3jiYRdOU; MSA_PBT=146; plus_lsv=f197ee21ffd230fd; plus_cv=1::m:49a3f4a6; MSA_ZOOM=1000; MSA_WH=394_670; lsv=searchboxcss_591d86b-globalBcss_565c244-wwwBcss_777000e-globalT_androidcss_e2c894e-wwwT_androidcss_90adf93; ysm=10313|10313; delPer=0; BDRCVFR[xoix5KwSHTc]=9xWipS8B-FspA7EnHc1QhPEUf; ___rl__test__cookies=1576220661807; SE_LAUNCH=5%3A26270344_0%3A26270344; BDICON=10123156; BDPASSGATE=IlPT2AEptyoA_yiU4V_43kIN8enzTri4H4PISkpT36ePdCyWmhHWBAREUjD6YnSgBC3gzDDPdstPoifKXlVXa_EqnBsZolpMany5xNSCgsTtPsx17QovIab2KUE2sA8PbRhL-3MJJ3NUMWosyBDxhAY1fe768Qx5huvRrzHgmMjsAkeR3oj6r7aTY767O-0APNuc-R0QbSh-OkOWVOGxRILYhFchOJ1L70aOatY6C3D5q6oY0RuiZMExGI8mFppi_x3nBQOLkKaoEV55qysc; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; FEED_SIDS=345657_1213_18; rsv_i=c8e0s9Kbgfe3IYpd4YQd9DWYvBco3sBW3mXRj6IEo6%2FgSyu%2Frc00sEfOpcIfTeIYx8TsGI5lR4gwD25GaSdnvPjVCMWNixE; BAIDULOC=11562630.22873027_149874.6866054242_16432_20001_1576231577543; wise_tj_ub=ci%40-1_-1_-1_-1_-1_-1_-1%7Ciq%408_1_7_275%7Ccb%40-1_-1_-1_-1_-1_-1_-1%7Cce%401%7Ctse%401; H_WISE_SIDS=136722_139419_139405_137831_114177_139251_120169_138490_133995_138878_137979_137690_131247_132552_137750_136680_118880_118865_118839_118832_118793_138165_107313_138882_136431_138845_138691_136863_138147_138114_139174_136195_131861_137105_139274_139400_133847_138476_137734_138343_137467_138564_138648_131423_138663_136537_138178_110085_137441_127969_138302_137252_139507_139408_127417_138312_137187_136635_138425_138562_138943_135718_139221_138239; BDSVRTM=55; BDORZ=SFH; COOKIE_SESSION=10914_1_1_8_1_t1_32_5_5_1_0_5_42_1576231572%7C9%230_0_0_0_0_0_0_0_1576144558%7C1; FC_MODEL=0_1_17_0_0_0_1_0_0_0_0_0_5_32_1_18_0_0_1576231572663%7C9%2310.3_-1_-1_5_1_1576231567476_1576220658164%7C9; ASUV=1.2.114; __bsi=8269619105128910962_00_24_N_R_1_0303_c02f_Y; BDSVRBFE=Go; OUTFOX_SEARCH_USER_ID_NCOO=78699081.532675; wise_tj_ub=ci%40-1_-1_-1_-1_-1_-1_-1%7Ciq%40-1_-1_-1_-1%7Ccb%4056_10_56_10_82_350_73%7Cce%40-1%7Ctse%401'
        }
    # 设置线程数
    for i in list(range(1)):
        t = threading.Thread(target=main)
        t.setDaemon(True)
        t.start()
    q.join()
    f.flush()
    f.close()



seo是什么意思
什么叫做seo
seo专员工资一般多少
seo是什么职业
网络爬虫
seo站内优化最主要的是什么
Seo工具
东莞seo顾问
seo是什么
sem的定义是什么
标准态逸度定义
sem专员工作累吗
sem和seo
sem的意义
sem岗位前景
化学sem是什么意思
统计sem是什么意思
seo行业
php自学网站
java和php哪个难学
php自学教程
为什么程序员鄙视php
php 教学
php学费多少
php有用吗
学好js要多久
django 用的人多吗
python网站
python语言
python 免费空间
python有什么用
python是什么
python为什么叫爬虫
python 类
python和java
python爬虫教程
c语言在线编程
c语言经典程序100例
c语言可以做什么软件
数学c上3下5
c多多 餐饮.com
c字母
排列组合c的计算方法
c语言例子
菜鸟教程100例
jaua
c和c++哪个好
下载download地址
js实现页面加载提示框
jdk8下载
学java
24hours
jquery音标
jdk安装
c语言在线编程
c语言经典程序100例
c语言可以做什么软件
数学c上3下5
c多多 餐饮.com
c字母
排列组合c的计算方法
c语言例子
菜鸟教程100例
编程猫和scratch
怎么从0开始学黑客
计算机编程语言
scratch编程下载
编程入门网
学电脑编程要多久
scratch手机版
孩子学编程的坏处
少儿编程培训班骗局
66ip代理
66ip爬取
seo 优帮云.com
python com
python3
python有什么用
python4
python如何使用
python a

  百度PC相关搜索词采集代码如上,大家可以尝试用用,有事情及时联系。

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会