python实战项目,获取指定网站关键词百度排行,为seo提供参考资料

优采云 发布时间: 2020-08-22 10:38

  python实战项目,获取指定网站关键词百度排行,为seo提供参考资料

  原帖:向日葵智能

  前言

  先解释一下标题的意思吧。现在个人站长早已十分多了,想要网站有流量,一个特别不错的渠道就是搜索引擎,用户搜索某个关键词,如果能搜到自己的网站,那么,流量肯定直线上升。这就须要seo,如果才能晓得在搜索引擎中,自己网站的关键词排行如何,肯定对seo有帮助,不至于一眼黑。

  各大站长工具其实也就能提供关键词排行查询,我也用过,但是它们只能提供一部分关键词的排行,而且虽然只能提供前100的排行。

  本节将进行一个新的python实战项目,能够搜索自己网站关键词在搜索引擎中的排行。

  实现方案

  咱们以百度搜索为例,搜索关键词后,会有好多结果。可以看见,每个结果就会有部份网站域名的,如果某一条结果里的链接是自己网站的,那么,这条结果就属于俺们的,获取其排行就可以了。

  

  右键,查看网页源代码,很轻易就发觉了俺们须要的关键词和网站域名两项关键信息都在,那么,咱们完全可以根据python实战项目,制作网路爬虫爬取百度美眉图片一节抓取信息。

  

  python项目实战,获取网站关键词排名

  分两步走:

  1. python实战项目,获取搜索信息

  仔细观察搜索结果页地址栏的地址,很容易发觉规律,只须要在浏览器地址栏输入:

  http://www.baidu.com/s?wd=【搜索内容】&pn=【页码】0

  按回车,就可以实现搜索。那么,咱们的python实战项目代码可以如下写:

  #coding:utf-8

import requests

url = u"http://www.baidu.com/s?wd=%s&pn=%d0" % (u"向日葵智能|智能创意", 1)

data = requests.get(url)

print data.content

  Python

  Copy

  可以发觉,咱们获得到了网页的源代码,即搜索信息。

  2. python实战项目,正则表达式提取有用信息

  正则表达式的使用,可以参照:python基础,什么是正则表达式,正则表达式的使用,关键就是找规律。首先,要明晰的是,咱们只关心网站域名信息,只要找出域名信息即可。

  

  在源代码页搜索这串字符,发现一共发觉了10条结果,这与本页一共10项搜索结果对应上去了,因此俺们正则匹配这串字符串是可行的。正则代码可以如下写:

  #coding:utf-8

import requests

url = u"http://www.baidu.com/s?wd=%s&pn=%d0" % (u"向日葵智能|智能创意", 1)

data = requests.get(url)

#print data.content

pattern = re.compile(r'class="c-showurl" style="text-decoration:none;">(.*?)&nbsp', re.S)

result = pattern.findall(data.content)

for item in result:

print item

  Python

  Copy

  运行脚本,发现网站域名被提取下来了。

  

  3. python实战项目,计算网站关键词排名

  接下来的工作就是字符串操作了,只须要判定自己网站的域名是否出现在搜索到的结果中就行了。找到后,计算编号,就是**网站关键词排行**了。不多说,python代码如下:

  # searchTxt:要分析的网页源代码,webUrl:网站的网址

i = 0

def KeywordRank(searchTxt, webUrl):

global i

try:

pattern = re.compile(r'class="c-showurl" style="text-decoration:none;">(.*?)&nbsp', re.S)

result = pattern.findall(searchTxt)

for item in result:

i = i+1

print "rank %d: %s"%(i,item)

if "xrkzn.cn" in item:

return i

except Exception, e:

print "error occurs"

return None

return None

# content:要搜索的关键词, page:要搜索的页码

def BaiduSearch(content, page):

try:

url = u"http://www.baidu.com/s?wd=%s&pn=%d0" % (content, page)

data = requests.get(url)

return data.content

except Exception, e:

return None

if __name__ == "__main__":

loops = 101 # 最多查到第 101 页

page = 0

while(loops):

searchTxt = BaiduSearch(u"向日葵智能|智能创意", page)

page = page+1

rank = KeywordRank(searchTxt, "xrkzn.cn")

if None!=rank:

print u"输入的关键词排在第 %d 名" % rank

break

loops = loops - 1

  Python

  Copy

  执行python实战项目脚本,发现成功了,脚本觉得俺们的网站关键词排第 8 名。

  

  咱们去浏览器搜索一下,发现的确是排在第 8 名。这样,我们就完整了一个新的python实战项目,获取指定网站关键词百度排行,为seo提供参考资料。

  

  原帖地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线