解决方案:Python与seo工具脚本,360/搜狗相关搜索词采集源码参考
优采云 发布时间: 2020-12-11 08:14Python和seo工具脚本,与360 / Sogou相关的搜索词采集源代码参考
与搜索引擎相关的搜索词应为[s5]扩展的类别,许多人正在寻找并选择使用,除了流行的与百度相关的搜索词采集之外,当然还有360个搜索引擎和搜狗搜索引擎,当然,我知道该方法将来,使用python来实现的方法基本上是相同的,您唯一需要关心的就是单词本身和反爬坡的限制!
不,这是该败类在360搜索中第二次推翻汽车。请注意,这是第二次。在采集 360搜索问题和答案期间,*敏*感*词*首次翻车或翻车。我忘了伤疤真是太好了,太久了! !
360搜索会大力创造奇迹,而不是正确地,会大力产生验证码。
此渣是使用常规规则实现相关关键词采集的方法,参考了大量的源代码,采用常规规则更加方便快捷!
360个搜索相关的关键词键源代码
re.findall(r"(.+?)</a>", html, re.S | re.I)
搜狗搜索相关的关键词关键源代码
re.findall(r"<p>(.+?)</a>", html, re.S | re.I)</p>
您可以自己参考和学习,毕竟没有什么可谈论的!
附加与关键词 采集相关的360搜索源代码,以供参考和学习! PS:我没有写代码。顽固的学习被废除了。怎么写呢? !
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""360相关搜索词挖掘脚本(多线程版)基于python3.8需要安装requests模块@author:微信/huguo00289"""import refrom queue import Queuefrom threading import Threadimport 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) # 构建含关键词的url try: 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肯定是没获取到的,所以赋值None if num_retries > 0: return self.download(url, timeout, proxy, num_retries - 1) else: html = resp.content.decode("utf-8") #print(html) return html @staticmethod def extract(html): """ 提取关键词 :param html:搜索结果源码 :return:提取出来的相关关键词列表 """ return re.findall(r"(.+?)</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 0: print("有东西") print("111") save.write(line) save.flush() # 刷新缓存,避免中途出错 save.close() print("done,完成挖掘")
如果您无权访问ip代理,那么进行协调非常容易。毕竟,将大力生成验证码。尝试后,速度仍然可以,但是太容易被360搜索阻止。代理ip呢,同时必须有一个cookie库!