百度网页关键字抓取(向日葵智能python项目实战获取网站关键词排名分的方法)

优采云 发布时间: 2021-09-27 13:04

  百度网页关键字抓取(向日葵智能python项目实战获取网站关键词排名分的方法)

  原帖:向日葵智能蟒蛇

  前言

  让我先解释一下标题的含义。现在,我有很多网站管理员。我想有流量到网站。一个非常好的渠道是搜索引擎。如果用户搜索某个关键词,如果能找到自己的网站,那么,流量就确定线性上升。这需要seo。如果你能知道网站的关键词在搜索引擎中的排名如何,对seo很有帮助,不会被黑眼圈。网络

  貌似各大站长工具也可以提供关键词排名查询,我也用过,但是只能提供关键词的部分排名,而且好像只能提供前 100 名排名。正则表达式

  本节将进行一个全新的python实战项目。您可以在搜索引擎中搜索网站关键词的排名。表达

  实施计划

  我们以百度搜索为例。搜索关键词后,会有很多结果。可以看出,每个结果都会有一些网站域名。如果某个结果中的链接是它自己的网站,那么这个结果就属于我们,我们可以得到它的排名。. 浏览器

  右键查看网页源码,很容易发现我们需要的两个关键信息关键词和网站域名都存在,那么我们就可以完全按照python实际操作了制作网络爬虫的实战项目。在百度美女图片版块抓取信息。互联网

  Python项目实战,获得网站关键词排名

  分两步走:ide

  1. Python实战项目,获取搜索资料

  仔细观察搜索结果页面地址栏中的地址,很容易找到图案,只需在浏览器地址栏中输入:工具

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

  按回车键实现搜索。那么,我们的python实战项目代码就可以这样写了:oop

  #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

  复制

  可以发现我们已经获取到了网页的源代码,即搜索信息。网站

  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

  复制

  运行脚本,发现网站域名已经被解压出来。

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

  接下来的工作就是进行字符串操作,只需要判断自己的域名网站是否出现在搜索结果中。找到后,计算出数字,即**网站关键词rank**。很少,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

  复制

  执行python实战项目脚本,发现成功。脚本认为我们的网站关键词排在第8位。

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

  原帖地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线