搜索引擎相关搜索词应该是不少seoer在寻找和选择使用的关键词拓展类别,除开热门的百度相关搜索词采集,当然还有360搜索引擎以及搜狗搜索引擎,当然知道方法以后,应用python来实现,基本都是大同小异,你唯一需要关心的是词本身,以及反爬的限制!

这不,本渣渣就是第二次在360搜索上翻车了,注意,这是第二次,第一次,处女翻车还是在采集360搜索问答的时候翻的车,真是好了伤疤忘了疼,太久远了!!

360搜索大力出奇迹,不对,大力出验证码。。

本渣渣这里实现相关关键词的获取是采用了正则,参考了不少源码,都是采用正则比较方便快捷的!

360搜索相关关键词关键源码

re.findall(r'<a data-ext=".+?" href=".+?">(.+?)</a>', html, re.S | re.I)

搜狗搜索相关关键词关键源码

re.findall(r'<p><a href=".+?" id="sogou_99999_.+?">(.+?)</a></p>', html, re.S | re.I)

可自行参考学习,毕竟没有好讲的!

附上一个360搜索相关关键词采集的源码,供大家参考和学习!PS:代码不是我写的,本渣渣学废了,怎么写的出?!

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
360相关搜索词挖掘脚本(多线程版)
基于python3.8
需要安装requests模块
@author:微信/huguo00289
"""import re
from queue import Queue
from threading import Thread
import requests,randomclass Qh360Spider(Thread):result = {}  # 保存结果字典seen = set()  # 表示在队列中的关键词(已抓取或待抓取)def __init__(self, kw_queue, loop, failed):super(Qh360Spider, self).__init__()self.kw_queue = kw_queue  # 关键词队列self.loop = loop  # 循环挖词拓展次数self.failed = failed  # 保存查询失败的关键词文件self.ua_list = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36Chrome 17.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0Firefox 4.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',]def run(self):  # 程序的执行流程while True:# 从队列里面获取一个关键词及其对应的当前拓展次数kw, cloop = self.kw_queue.get()print('CurLoop:{} Checking: {}'.format(cloop, kw))query = 'https://www.so.com/s?q={}'.format(kw)  # 构建含关键词的urltry:source = self.download(query, timeout=10)# source = self.download(query,timeout=10,user_agent=self.ua)if source:kw_list = self.extract(source)print(kw_list)self.filter(cloop, kw_list)else:# 获取源码失败,保存查询失败的关键词self.failed.write('{}\n'.format(kw))finally:self.kw_queue.task_done()def download(self, url, timeout=5, proxy=None, num_retries=5):"""通用网页源码下载函数:param url: 要下载的url:param timeout: 请求超时时间,单位/秒。可能某些网站的反应速度很慢,所以需要一个连接超时变量来处理。:param user_agent: 用户代理信息,可以自定义是爬虫还是模拟用户:param proxy: ip代理(http代理),访问某些国外网站的时候需要用到。必须是双元素元组或列表(‘ip:端口’,‘http/https’):param num_retries: 失败重试次数:return: HTML网页源码"""headers = {"Cookie": "QiHooGUID=41F80B0CCE5D43A22EEF0305A12CDE3F.1596003342506; __guid=15484592.2994995584481314300.1596003341831.5723; soid=TjzBKt3zrO-Rh1S7fXSb0S!6kmX5TlEerB2URZz9v4; __md=667cb161f9515972323507763d8fa7dd643a65bd2e88034.9; dpr=1; isafe=1; webp=1; _uc_m2=886a48052dbb9e2291f80055746e0d4f1f110f922b2f; _uc_mid=7cb161f953d8fa7dd643a65bd2e88034; __huid=11xZqhEl%2FfVeqclI4j%2BdQeQvX63Oph%2F%2BCVM5vxqYGxQI4%3D; Q=u%3Duhthb002%26n%3D%26le%3DAwH0ZGV5ZGR3WGDjpKRhL29g%26m%3DZGH5WGWOWGWOWGWOWGWOWGWOZGL0%26qid%3D144048053%26im%3D1_t018c25fbb66797efb2%26src%3D360chrome%26t%3D1; T=s%3D2afa764886f737dd5d23421c30f87a1f%26t%3D1595934758%26lm%3D0-1%26lf%3D2%26sk%3De485bbde46ac34fc27fc40215de76c44%26mt%3D1595934758%26rc%3D1%26v%3D2.0%26a%3D1; _S=tg75a7e3fmv0mfdfkt8jlpfpj6; stc_ls_sohome=RRzRSR!RTR(RUR_RVR; gtHuid=1; homeopenad=1; _pp_wd=1; _ga=GA1.2.607533084.1598082638; _gid=GA1.2.1887117715.1598082638; count=6; erules=p1-9%7Cp2-11%7Cp4-3%7Cecl-2%7Ckd-1%7Cp3-2",'User-Agent': random.choice(self.ua_list)}try:# 打开网页并读取内容存入html变量中resp = requests.get(url, headers=headers, proxies=proxy, timeout=timeout)print(resp.status_code)except requests.RequestException as err:print('Download error:', err)html = None  # 如果有异常,那么html肯定是没获取到的,所以赋值Noneif num_retries > 0:return self.download(url, timeout, proxy, num_retries - 1)else:html = resp.content.decode('utf-8')#print(html)return html@staticmethoddef extract(html):'''提取关键词:param html:搜索结果源码:return:提取出来的相关关键词列表'''return re.findall(r'<a data-ext=".+?" href=".+?">(.+?)</a>', html, re.S | re.I)def filter(self, current_loop, kwlist):'''关键词过滤和统计函数:param current_loop: 当前拓展的次数:param kwlist: 提取出来的关键词列表:return: None'''for kw in kwlist:# 判断关键词是不是已经被抓取或者已经存在关键词队列# 判断当前的拓展次数是否已经超过指定值if current_loop < self.loop and kw not in self.seen:# 同时满足关键词的拓展次数小于目标次数,而且关键词不在seen里面时才把kw放到待抓取队列内self.kw_queue.put((kw, current_loop+1))Qh360Spider.seen.add(kw)# 将关键词放到结果字典内,并统计出现次数if kw in self.result:Qh360Spider.result[kw] += 1else:Qh360Spider.result[kw] = 1if __name__ == '__main__':# 创建关键词队列实例k_queue = Queue()# 将待抓取关键词放入队列已经类的seen属性中with open('keywords.txt', encoding="GBK") as kwfile:for key in kwfile:key = key.strip()k_queue.put((key, 1))Qh360Spider.seen.add(key)# 创建查询失败保存文件check_failed = open('faileds.txt', 'w')# 创建线程for i in range(15):bds = Qh360Spider(k_queue, 3, check_failed)bds.setDaemon(True)bds.start()# 阻塞关键词队列,直到完成k_queue.join()# 关闭查询失败的文件check_failed.close()# 对结果进行排序及写入文件sort_list = sorted(Qh360Spider.result.items(), key=lambda x: x[1], reverse=True)with open('ah360key.txt', 'w', encoding='utf8') as save:for item in sort_list:# 关键词+次数的文件输出方式line = '%s\n' % (item[0])if len(line) > 0:print("有东西")print('111')save.write(line)save.flush()  # 刷新缓存,避免中途出错save.close()print('done,完成挖掘')

如果没有接入ip代理,超级容易和谐,毕竟大力出验证码,试了一下,速度还是可以,就是太容易被360搜索反爬封禁了,如果想要正常稳定运行,不知道接入代理ip情况如何,同时还得有一个cookies库!

微信公众号:二爷记

不定时分享python源码及工具

Python与seo工具脚本,360/搜狗相关搜索词采集源码参考相关推荐

  1. 百度相关搜索软件_Python与seo,百度关键词相关搜索关键词采集源码

    百度关键词相关搜索关键词采集源码 瞎写的,看看就好! #百度相关搜索# -*- coding=utf-8 -*-#20200714 by 微信:huguo00289import requests,ti ...

  2. 【Python与SEO】搜狗微信搜索下拉框词采集多线程/异步采集源码公布

    随意写了一下,更多可关注本渣渣微信公众号:二爷记!! 欢迎与本渣渣交流!!! 运行效果: 搜狗微信搜索下拉框词采集核心代码参考: #微信搜索下拉词采集 #首发:微信公众号:二爷记 #author:微信 ...

  3. Python与Seo工具源码,全网搜录查询助手exe

    Python与Seo工具源码,全网搜录查询助手exe 很多人都说,seo是一个玄学,诚然,一方面是排名,另一方面是收录,尤其是对于渣渣而言,当然收录和排名都需要去验证,去查询,乃至去监控,大批量的话, ...

  4. 【python】又拍云采集工具助手exe带python图片采集源码

    [python]又拍云采集工具助手exe带python图片采集源码 论坛的老哥要的东西!练手试了一下! 技术比较渣,见谅! 拿去玩! 适合想要获取 又拍云 相册图片的需求! 自己测试了一下,没有用多线 ...

  5. php实现挖掘百度相关词,百度相关搜索关键词采集即长尾关键词挖掘脚本

    百度相关搜索关键词采集即长尾关键词挖掘脚本 使用环境: 1.本地mysql数据库 2.windows 10以下最好windows 7 使用之前步骤: 1.准备好要挖掘的,主关键词,一般比较短,脚本设定 ...

  6. 【爬虫实战项目】Python爬虫批量下载评书音频并保存本地(附源码)

    前言 今天给大家介绍的是Python爬虫批量下载评书音频并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这 ...

  7. Python基于改进YOLOv5的烟叶病害检测系统(附带源码)

    Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...

  8. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)

    1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...

  9. renren-fast后端源码参考-配置和对应工具

    1. renren-fast后端源码参考-配置和对应工具 1.1. 前言 renren-fast是个开源的前后端分离快速开放平台,没有自己框架的同学可以直接使用它的,而我打算浏览一遍它的代码,提取一些 ...

最新文章

  1. 关于安卓你不知道的6件事
  2. 《人生重开模拟器》爆火出圈,3天2亿流量却源于群内自嗨,网友:我提前看遍人生的无常...
  3. Node.js 8有哪些重要功能和修复?
  4. hdu-5068 Harry And Math Teacher
  5. ubuntu14.04上网问题
  6. excel图表交互联动_深入讲解EasyShu图表与引用数据动态联动功能
  7. django-记住用户名-利用cookie-待演练
  8. Linux 创建用户并限制其访问目录,设置密码为永不过期
  9. python对ip地址排序、对列表进行去重
  10. 机器学习知识总结 —— 8. 什么是有监督学习、无监督学习、半监督学习
  11. android基础之Map系列
  12. nginx-1.13.7 按照centos8 报错记录
  13. .net中使用ckeditor4+ckfinder上传图片
  14. QQ空间日志导出(php)
  15. matlab中ode的用法,关于matlab 的ode45用法
  16. 【Distill 系列:三】CVPR2019 Relational Knowledge Distillation
  17. php 心跳包检测,redis的对端心跳检测
  18. Educational Codeforces Round 112 (Rated for Div. 2)(补题)
  19. 牛人自制相机全过程(附:电路图)
  20. android10.0(Q) Settings 添加设置项——动态方式

热门文章

  1. js以15分钟为单位分割间隔时间
  2. Linux配置环境变量不起作用
  3. BD功率变送器在造纸磨浆机控制系统中的研究应用
  4. MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square 论文翻译
  5. 面试题-专业名称诠释
  6. Atmel AT91SAM9G20 EMAC控制DM9161调试笔记
  7. wxpython制作桌面悬浮球
  8. uni-app使用uni-forms验证遇到的问题
  9. 绝地求生刺激战场经验总结
  10. 磁共振信号库matlab,【图文详解】磁共振(MRI)信号汇总