yanhua501511 发表于 2019-8-12 15:30

【原创】SEO关键词筛选脚本。

本帖最后由 yanhua501511 于 2019-8-13 17:49 编辑

在做seo的时候很多人都会要去找关键词,如果你是正规企业那么老实的去看指数最好,毕竟相对后期方面优化。
       但是如果是灰色行业,关键词会面临的被封禁的地步,所以就弄了这么一个脚本。适用于站群或者目录等需要做超多关键词的人。
脚本原理:各大搜索引擎封禁词汇不给与展示,类似这样:

以上为举例!以上为举例!以上为举例!
相关结果2个,不展示收录结果!这个就是脚本的原理了。通过抽取txt文本关键词让脚本去百度。
设定一个结果数目,虽然这个办法不是很好,但是至少能帮各位筛选掉大部分封禁词。
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).replace(',','')) >= 20000:
                              L = (pNum.strip(), r_list)
                              with open("guanjianzi.txt", "a", encoding="utf-8") as f:
                                        f.write(str(pNum))               
                                        print(L)
                                        # print(r_list)
                                        # 清除此任务
                  #过滤完成保存文本
                        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)
第一次分享原创。不会发帖.....现在取消了收费地址了。{:1_923:}



KARMA07007 发表于 2019-8-12 15:32

1CB的附件 你拿不到CB的。

司徒浩 发表于 2019-8-12 15:33

yanhua501511 发表于 2019-8-12 15:33

LGLG 发表于 2019-8-12 15:32
1CB的附件 你拿不到CB的。

第一次发。。不知道怎么设置。。。

yanhua501511 发表于 2019-8-12 15:34

司徒浩 发表于 2019-8-12 15:33
不诚实,你是第七次发帖

{:1_937:}之前都是转的,这个是自己做了第一次发的。。。

KARMA07007 发表于 2019-8-12 15:34

本帖最后由 LGLG 于 2019-8-12 15:41 编辑

yanhua501511 发表于 2019-8-12 15:33
第一次发。。不知道怎么设置。。。
你等级低不能设置

yanhua501511 发表于 2019-8-12 15:37

LGLG 发表于 2019-8-12 15:34
不要设置,只有原创才能靠附件收入。

我这个是原创啊。

yanhua501511 发表于 2019-8-12 15:42

LGLG 发表于 2019-8-12 15:34
你等级低不能设置

没事不要了,分享为主。

z15015023520 发表于 2019-8-12 15:58

谢谢分享~先收藏了~楼主辛苦啦

z15015023520 发表于 2019-8-12 16:00

不过。。。小白好像不太会使用。。能有一个流程教学吗~
页: [1] 2
查看完整版本: 【原创】SEO关键词筛选脚本。