首页 编程教程正文

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

piaodoo 编程教程 2020-02-22 22:06:44 884 0 python教程

本文来源吾爱破解论坛

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

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

封禁词.png (76.53 KB, 下载次数: 1)

下载附件  保存到相册

2019-8-12 15:19 上传


以上为举例!以上为举例!以上为举例!
相关结果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 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7559.html

搜索