本文来源吾爱破解论坛
本帖最后由 yanhua501511 于 2019-8-13 17:49 编辑 封禁词.png (76.53 KB, 下载次数: 1)
下载附件
保存到相册
在做seo的时候很多人都会要去找关键词,如果你是正规企业那么老实的去看指数最好,毕竟相对后期方面优化。
但是如果是灰色行业,关键词会面临的被封禁的地步,所以就弄了这么一个脚本。适用于站群或者目录等需要做超多关键词的人。
脚本原理:各大搜索引擎封禁词汇不给与展示,类似这样:
以上为举例!以上为举例!以上为举例!
相关结果2个,不展示收录结果!这个就是脚本的原理了。通过抽取txt文本关键词让脚本去百度。
设定一个结果数目,虽然这个办法不是很好,但是至少能帮各位筛选掉大部分封禁词。
[Python] 纯文本查看 复制代码
import requestsfrom lxml import etree from queue import Queue import threading import time import urllib class BaiduSpider: def __init__(self): self.baseurl = "https://www.baidu.com/s?wd=" self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (K HTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"} # URL队列 self.urlQueue = Queue() # 响应html队列 self.resQueue = Queue() # 生成URL队列 def getUrl(self): f = open("jieguociku.txt", "r" , encoding="utf-8")#打开词库txt for pNum in f: # 拼接URL放到url队列中去 url = self.baseurl + urllib.parse.quote(pNum.strip()) + "&pn=0" self.urlQueue.put((url,pNum)) # 请求,得到响应html,放到解析队列 def getHtml(self): while True: global html # 1.从url队列中get值 (url,pNum) = self.urlQueue.get() # 2.发请求,得响应,put到响应队列中 try: # 设置20秒超时等待 res = requests.get(url, headers=self.headers, timeout=30) res.encoding = "utf-8" html = res.text except Exception as f: with open("chaoshi.txt", "a", encoding="utf-8") as f: #超时保存文本 f.write(pNum) # 放到响应队列 self.resQueue.put((html, pNum)) # 清除此任务 self.urlQueue.task_done() # 解析页面方法 def getText(self): while True: (html, pNum) = self.resQueue.get() parseHtml = etree.HTML(html) r_list = parseHtml.xpath('//div[@id="wrapper_wrapper"]//div[@class="nums"]/span/text()') if int(str(r_list[0][11:-1]).replace(',','')) >= 20000: L = (pNum.strip(), r_list[0]) with open("guanjianzi.txt", "a", encoding="utf-8") as f: f.write(str(pNum)) print(L) # print(r_list[0]) # 清除此任务 #过滤完成保存文本 else: with open("guanjianzixiaoyu.txt", "a", encoding="utf-8") as f: f.write(str(pNum)) self.resQueue.task_done() def run(self): # 1.空列表,用来存放所有线程 thList = [] # 2.生成URL队列 self.getUrl() # 3.创建请求线程,放到列表中 for i in range(50): thRes = threading.Thread(target=self.getHtml) thList.append(thRes) #range线程数量50 # 4.创建解析线程,放到列表中 for i in range(50): thParse = threading.Thread(target=self.getText) thList.append(thParse) # 5.所有线程开始干活 for th in thList: th.setDaemon(True) th.start() # 如果队列为空,则执行其他程序 self.urlQueue.join() self.resQueue.join() if __name__ == "__main__": begin = time.time() spider = BaiduSpider() spider.run() end = time.time() print(end - begin) input()
代码如上!附上成品!
新人分享如果有大佬有好的建议希望指出。我这里会虚心的学习。
因为是第一次发帖所以排版可能又问题,还有希望有能帮忙解决封装exe的大佬帮助我一下,我封装exe总是提示错误。
小弟完全搞不懂了。谢谢各位!
希望帮到各位的同时,各位大大给下热心评论与评分!谢谢!
希望帮到各位的同时,各位大大给下热心评论与评分!谢谢!
希望帮到各位的同时,各位大大给下热心评论与评分!谢谢!
免费分享地址: https://share.weiyun.com/5IdN8Pw (密码:jKnx)
第一次分享原创。不会发帖.....现在取消了收费地址了。
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 使用python爬取数据并分析2018北京积分落户情况
- 下一篇: 某道爬虫