吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4510|回复: 10
收起左侧

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

[复制链接]
yanhua501511 发表于 2019-8-12 15:30
本帖最后由 yanhua501511 于 2019-8-13 17:49 编辑

在做seo的时候很多人都会要去找关键词,如果你是正规企业那么老实的去看指数最好,毕竟相对后期方面优化。
       但是如果是灰色行业,关键词会面临的被封禁的地步,所以就弄了这么一个脚本。适用于站群或者目录等需要做超多关键词的人
脚本原理:各大搜索引擎封禁词汇不给与展示,类似这样:
封禁词.png
以上为举例!以上为举例!以上为举例!
相关结果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)
第一次分享原创。不会发帖.....现在取消了收费地址了。



免费评分

参与人数 3吾爱币 +5 热心值 +3 收起 理由
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Beast。 + 1 + 1 谢谢@Thanks!
bydlyzx + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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
不诚实,你是第七次发帖

之前都是转的,这个是自己做了第一次发的。。。
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
不过。。。小白好像不太会使用。。能有一个流程教学吗~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 14:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表