教程:seo查询工具源码_Python与seo工具脚本
优采云 发布时间: 2022-10-07 20:26教程:seo查询工具源码_Python与seo工具脚本
搜索引擎相关的搜索词应该是很多seoer都在寻找并选择使用的关键词扩展类别。除了流行的百度相关搜索词采集,当然还有360搜索引擎和搜狗搜索引擎,当然知道方法之后,python的应用基本一样,唯一的就是你需要关心的是词本身和反爬虫的局限性!
不,这是这个人渣第二次在360搜索上翻车了。注意,这是第二次,第一次,在采集360搜索问答过程中翻车的*敏*感*词*或者翻车的车,真的好伤疤忘了痛,太久了!!
360搜索大力出奇迹,不,大力出验证码。.
本渣渣通过使用正则来实现这里相关关键词的获取,参考了很多源码,使用正则更加方便快捷!
360搜索相关关键词key源码
re.findall(r'(.+?)', html, re.S | re.I)
搜狗搜索相关关键词关键源码
re.findall(r'<p>(.+?)', html, re.S | re.I)</p>
大家可以参考自己的学习,毕竟没什么好说的!
附上360搜索相关关键词采集源码供大家参考学习!PS:我没写代码,我没用,怎么写?!
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
360相关搜索词挖掘脚本(多线程版)
基于python3.8
需要安装requests模块
@author:微信/huguo00289
"""
import re
from queue import Queue
from threading import Thread
import requests,random
class 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)
<p>
# 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'(.+?)', 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 < self.loop and kw not in self.seen:
# 同时满足关键词的拓展次数小于目标次数,而且关键词不在seen里面时才把kw放到待抓取队列内
self.kw_queue.put((kw, current_loop+1))
Qh360Spider.seen.add(kw)
# 将关键词放到结果字典内,并统计出现次数
if kw in self.result:
Qh360Spider.result[kw] += 1
else:
Qh360Spider.result[kw] = 1
if __name__ == '__main__':
# 创建关键词队列实例
k_queue = Queue()
# 将待抓取关键词放入队列已经类的seen属性中
with open('keywords.txt', encoding="GBK") as kwfile:
for key in kwfile:
key = key.strip()
k_queue.put((key, 1))
Qh360Spider.seen.add(key)
# 创建查询失败保存文件
check_failed = open('faileds.txt', 'w')
# 创建线程
for i in range(15):
bds = Qh360Spider(k_queue, 3, check_failed)
bds.setDaemon(True)
bds.start()
# 阻塞关键词队列,直到完成
k_queue.join()
# 关闭查询失败的文件
check_failed.close()
# 对结果进行排序及写入文件
sort_list = sorted(Qh360Spider.result.items(), key=lambda x: x[1], reverse=True)
with open('ah360key.txt', 'w', encoding='utf8') as save:
for item in sort_list:
# 关键词+次数的文件输出方式
line = '%sn' % (item[0])
if len(line) > 0:
print("有东西")
print('111')
save.write(line)
save.flush() # 刷新缓存,避免中途出错
save.close()</p>
如果您无法访问 ip 代理,那么协调起来非常容易。毕竟,你可以大力发出验证码并尝试一下。速度还可以,但是太容易被360搜索和反爬网封杀。想要正常稳定运行,不知道访问代理的ip状态。怎么样,同时还得有一个cookies库!
分享文章:网站SEO优化推广你需要的是这些锚文本外链
网站SEO优化和推广你所需要的就是这些锚文本外部链接
SEO人员,每天常见的工作就是发文章,发外链,正所谓“内容为王,外链为王”,可见外链对于网站。如何找到大量有针对性的优质外链资源?其实发外链是每个站长,或者说从业者都做过的事情,包括建站和优化的前期,最难做的就是发外链。发外链最难的就是,发了很多,但是后来发现被删了很多,而且很多外链都失效了,尤其是放出大量垃圾外链,不仅没有发挥对网站的发展起到了很好的作用,但起到了不好的作用。严重甚至被度娘降级都是有可能的,怎么才能发布高质量的外链呢?
网站SEO优化和推广你所需要的就是这些锚文本外部链接
首先,什么是高质量的外链?
实际上,外部链接本身分为有效外部链接和无效外部链接,我们将有效外部链接定义为高质量的外部链接。如果用结果导向的解释,则意味着在完成这些外链后,外链的排名会有显着提升,称为优质外链。外部链接的有效性取决于页面本身的质量。发布外链时,要注意外链的收录和排名。这里有几个标准:
外部链接页面本身是否被 收录 阻止?
外部链接页面是否参与目标 关键词 排名?
外部链接页面本身到自己的网站的链接数要与当前页面主题一致;
从外部网页到我们的 网站 的链接应该是锚文本链接,而不是文本超链接,甚至是纯文本。
二、优质外链平台的选择
目前不仅可以匹配网页的主题,还可以匹配锚文本链接的外链,即目录站点的外链。可以提交的目录站点的更好的外部链接是什么?站长的博客采集了一些权重比较高的好目录资源。你可以参考:
1.亚马逊分类
2. 雅虎分类
3.首选网站目录
4. 打开类别
5.锦衣网站目录
6.自助网站目录
7.千墨云目录
8.酷网网址大全
9.国外网站目录
10. 提升 网站 目录
11. OneNet 分类目录
12. 微页网站目录
三、通过“域”命令挖掘
这个命令用的也比较多,个人觉得很有效。将高级搜索与域命令相结合,可以找到最近一周被竞争对手发布的收录的反向链接。[例如:域:加网址]
四、通过指令组合挖掘
in 命令需要结合所需资源进行挖掘。比如url中收录了论坛的资源,那么就需要在搜索框中这样搜索;inurl bbs 关键词 这个可以,中间需要空格。
1.inurl bbs 关键词 2.intltle 关键词 3.bbs:关键词 三组命令都可以使用
因此,为自己找到最好的外链资源,找到高质量的有针对性的外链非常重要。很多事情都不是。如果你做的很快,你会做得很好。关键是坚持。做网站SEO优化是一项枯燥乏味的工作,因为要靠积累才能达到效果,只要你积累的优质反向链接越多,你的网站在搜索排名中就会越高.
SEO中如何做外链推广?
1. 什么是外链
外部链接也称为外部链接,是指在其他网站中导入自己的网站的链接。导入链接是网站优化的一个非常重要的过程。传入链接的质量间接影响我们在搜索引擎中的 网站 权重。
网站 的权重反过来会影响我们的 网站 页面在搜索结果页面上的排名。因此,SEO中有“内容为王,外链为王”的说法。
2. 外链有哪些类型?
外部链接一般分为三种:锚文本链接、超链接和纯文本链接
在今天的互联网发展过程中,“二维码”其实也承担了流量传输的功能,因此也可以看成是一种外链形式。
3、如何制作外链?
①寻找外链平台
通用标准是“高相关性、高权重”。
互联网上常见的外链平台一个是老旧,另一个是相关性差。所以在发布外链的时候,还是需要考虑哪个网站可以带来流量和权重,哪个网站可以带来企业网站需要的流量。
②释放外链
在外链平台发布外链内容。
考虑几个方面:用户愿意阅读哪些内容
怎么发帖不被删
用户看到内容后如何输入网站
③记录数据
每天发布的外链都有记录,方便第二天查看是否被删除,以及数据分析。