专栏首页二爷记python百度关键词相关搜索词采集,链轮查询采集exe工具

python百度关键词相关搜索词采集,链轮查询采集exe工具

什么是百度相关搜索?

在百度搜索结果页面底部通常有9个相关词,其他搜索引擎同样也都有相关搜索,只是显示个数稍微有些不同,例如,我们搜索什么是SEO,新手如何学SEO等词组,目的就是为了方便用户对该词的其他信息进行拓展了解。

百度相关搜索形成原理

用户搜索词和其他搜索词出现相关的,或有很多人是直接搜索与这个词相关的其他短语,如果搜索的人多,可以解释的内容用户句话说从侧面也有很强的需求。因此,为了满足更多用户的需求,提高用户体验,百度搜索这个词的数据显示用户和搜索次数最多的词数据相关和最底部的相关搜索,方便用户找到自己。

如何使用相关的搜索推广

1、这其实就是,将自己的关键词+品牌词做相关搜索就可以了,可以提高自己网站的知名度和曝光率,长时间也可以带来很多流量。

2、实践是非常简单的,每天自己的搜索关键字时,搜索和添加自己的品牌的话,但几个IP显然是不够的,这需要一些IP点击软件的使用,或找到一个第三方支付刷。

提示:如果自己的服务和产品不好,即使这些相关的搜索做了一点,意义也不是很大,如果产品和服务失败了那就很难了。不建议用黑帽做这些东西,会让搜索引擎反感。

版本一

1.随机生成协议头

2.关键词相关筛选

3.关键词去重

4.链轮采集

5.插入本地数据库

#百度关键词相关搜索采集
#20191118
# -*- coding: UTF-8 -*-

import requests,re,time
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import pymysql

#获取当前时间
#打印出当前的年月日时分秒
#print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
#打印出当前的年月日
#print(time.strftime('%Y-%m-%d',time.localtime(time.time())))
def get_time():
    timedata=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    return timedata

#随机生成协议头
def ua():
    ua=UserAgent()
    headers = {"User-Agent": ua.random}
    return headers

#筛选词初始设定
req="工业|产品|外观|结构|造型|手机|犀牛|rhino|proe"

#链接数据库
connect=pymysql.connect(
            host="localhost",
            user="root",
            password="123456",
            db="xiaoshuo",
            port=3306,
        )
cursor=connect.cursor() #设置游标

#筛选关键词
def search(req,con,n):
    text=re.search(req,con)
    if text:
        data=text.group(n)
    else:
        data='no'
    return data

#获取相关关键词源码
def get_a(key):
    response = requests.get(f"https://www.baidu.com/s?ie=utf-8&tn=baidu&wd={key}", headers=ua(), timeout=5).text
    time.sleep(2)
    soup = BeautifulSoup(response, 'lxml')
    div = soup.find('div', id='rs').find_all('a')
    return div


#相关关键词链轮查询采集
def get_keywords(keywords):
    xg_keywords=keywords

    all_keywords=[]
    for key_word in keywords:
        print(">>>开始查询 %s 相关关键词!" % key_word)
        try:
            div=get_a(key_word)
        except Exception as e:
            print(f'错误代码:{e}')
            print(f'正在重新获取网页内容...')
            time.sleep(5)
            div = get_a(key_word)

        for a in div:
            keyword=a.get_text()
            print(keyword)

            #筛选
            if search(r'(%s)'%req,keyword,1) =='no':
                print(f'-剔除关键词 {keyword}')
            else:
                print(f'>>获取关键词 {keyword}')

                print(xg_keywords)
                #去重
                if keyword not in xg_keywords:

                    #插入数据库
                    cursor.execute('insert into keywords(key_word,keyword,timedata)VALUES("{}","{}","{}")'.format(key_word,keyword,get_time()))
                    connect.commit()

                    xg_keywords.append(keyword)
                    all_keywords.append(keyword)

    #链轮
    get_keywords(all_keywords)

    #关闭数据库
    cursor.close()
    connect.close()



if __name__ == '__main__':
    get_keywords(["工业设计培训"])

代码参考来源:流量贩子 《seo应用编程》

版本二

百度相关搜索关键词抓取

1.读取txt文档关键词

2.导出txt关键词

3.多线程采集关键词

# 百度相关搜索关键词抓取,读取txt关键词,导出txt关键词
# -*- coding=utf-8 -*-
import requests
import re
import time,random
from multiprocessing.dummy import Pool as ThreadPool
from fake_useragent import UserAgent
# 百度相关关键词查询
def xgss(url):
    sjs = random.randint(111111, 999999)
    print(sjs)
    sj=str(sjs)
    ua=UserAgent()
    headers = {
        'Cookie': 'BIDUPSID=A484BA501E92BE1CA6537C00F7155E36; PSTM=1558489515; BAIDUID=75912F7E3DD9AB678D8B98EEE8D263DE:FG=1; BD_UPN=12314353; H_PS_PSSID=; H_PS_645EC=a0f4GSgzx44WxF1PZV01LZFmAyUbaDsJJ882KRllgCkTAGrK0tV0eXNoXakEyZNGUxuz5Xgf2qs; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; COOKIE_SESSION=341509_0_9_6_5_45_0_3_9_7_1_41_0_0_0_0_1564971440_0_1578376068%7C9%230_0_1578376068%7C1; delPer=0; BD_CK_SAM=1; PSINO=6; BDSVRTM=526',
        'Referer': 'https://www.baidu.com/?tn=4%s1_6_hao_pg' % sj,
        "User-Agent":ua.random
        #"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    }
    html = requests.get(url, headers=headers).content.decode('utf-8')
    time.sleep(2)
    #print(html)
    ze = r'<div id="rs"><div class="tt">相关搜索</div><table cellpadding="0">(.+?)</table></div>'
    xgss = re.findall(ze, html, re.S)
    # print(xgss)
    xgze = r'<th><a href="(.+?)">(.+?)</a></th>'
    sj = re.findall(xgze, str(xgss), re.S)
    # print(sj)
    gjc = ''
    for x in sj:
        print(x[1])
        gjc = gjc + x[1] + '\n'

    # 导出关键词为txt文本
    with open(".\gjcsj.txt", 'a', encoding='utf-8') as f:
        f.write(gjc)
    print("-----------------------------------")
    return gjc

print('\n========================工具说明========================')
print('百度相关关键词挖掘采集工具-by huguo002\n')
print('1.gjc.txt 为搜索词来源文件,关键词一行一个,最后一个关键词后须换行;')
print('2.gjcsj.txt 为输出关键词保存文档;')
print('注意,大批量采集使用容易和谐!\n')
print('================= BUG 反馈微信:huguo00289 ============\n')
time.sleep(5)
print("程序运行,正在导入关键词列表!!!")
print("-----------------------------------")

# 导入要搜索的关键词txt列表
urls = []
data = []
for line in open('.\gjc.txt', "r", encoding='utf-8'):
    if line !='\n':
        data.append(line)
print("导入关键词列表成功!")
print("-----------------------------------")

# 转换关键词为搜索链接
for keyword in data:
    url = 'https://www.baidu.com/s?wd=' + keyword
    urls.append(url)

print("采集百度相关搜索关键词开启!")
print("...................")
# 多线程获取相关关键词
try:
    # 开4个 worker,没有参数时默认是 cpu 的核心数
    pool = ThreadPool()
    results = pool.map(xgss, urls)
    pool.close()
    pool.join()
    print("采集百度相关搜索关键词完成,已保存于gjcsj.txt!")
except:
    print("Error: unable to start thread")

print("8s后程序自动关闭!!!")
time.sleep(8)

exe下载地址:

百度云

链接:

https://pan.baidu.com/s/1RhmZ99dYCSIJsEe-SnlhXQ

提取码:

9sjs

本文分享自微信公众号 - 二爷记(eryeji),作者:二大爷

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python结巴分词,字符串余弦相似度算法实现关键词筛选及整理

    字符串余弦相似性算法是通过利用我们初中就学过的三角函数中的余弦定理来计算两个字符串的相似度,它是定义在向量空间模型(Vector Space Model)中的。

    二爷
  • 【词库】Python关键词筛选分类,Levenshtein编辑距离算法分词

    Python关键词筛选分类,使用Levenshtein模块进行关键词筛选及分类,使用编辑距离的算法,速度相当快。

    二爷
  • Python与seo,百度关键词相关搜索关键词采集源码

    二爷
  • python3学习案例

    py3study
  • python集合与字典的用法

    5.去重  例:把列表去重   a=[1,2,3,4,1,2]     a=list(set(a))

    py3study
  • python练手小程序(石头剪子布)

    https://asciinema.org/a/YYGXOzfoP3dAu9mMXCV4J5GRs

    bboysoul
  • python 自定义异常类学习

    py3study
  • Python函数(二)

    1. 感觉编程就像搭积木,每一块积木就像我们这里定义的一个函数。你可以想象你用乐高在拼一个汽车,那print_plus_row定义的这个函数可以看作是轮子,汽车...

    生信交流平台
  • python内置模块之上下文管理contextlib

    contextlib模块时关于上下文管理的,在介绍之前需要先介绍一下with语句。 with语句

    菲宇
  • Python最容易掉进去的10个坑

    相比于其他语言,Python的语法比较简单易学,但一旦不注意细节,刚入门的新手很容易就会掉进语法错误的坑里。

    sergiojune

扫码关注云+社区

领取腾讯云代金券