[url=http://www.1sucai.cn/article/60173.htm]上一次[/url]我用requests库写的一个抓取页面中链接的简单代码,延伸一下,我们还可以利用它来获取我们网站的PR以及百度权重。原理差不多。最后我们甚至可以写一个循环批量查询网站的相关信息。
先说说GooglePR,全称PageRank。它是Google官方给出的评定一个网站SEO的评级,这个大家应该不陌生。既然是官方给出的,当然有一个官方的接口去获取它。我们这里就利用官方的接口获取谷歌PR。
[url=http://toolbarqueries.google.com/tbr?client=navclient-auto&ch={HASH}&features=Rank&q=info]http://toolbarqueries.google.com/tbr?client=navclient-auto&ch={HASH}&features=Rank&q=info[/url]:{域名}
{HASH}这里我们就使用google_hash()这个函数,传入域名,返回它对应的HASH值。比如我们离别歌的域名[url=http://www.leavesongs.com]www.leavesongs.com[/url],它的谷歌HASH是8b1e6ad00,于是构造出来的咨询网址是:[url=http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=8b1e6ad00&features=Rank&q=info:www.leavesongs.com]http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=8b1e6ad00&features=Rank&q=info:www.leavesongs.com[/url]
访问它,得到Rank_1:1:0。第二个引号后面的数字是PR,因为我的站是没有PR的,所以PR为0.
于是,我们使用requests.get()来访问我们这个构造好的URL,然后获得类似Rank_1:1:0这样的结果,最后通过正则或其他方式得到PR值0。
以上是getPR这个函数的执行过程。再看获取百度权重的过程。
百度权重并不是百度官方给的一个标准,是一些第三方网站计算的一个值,所以并没有像PR一样的接口。所以我们就需要抓取这些第三方网站中的信息了。下面是获取百度权重的函数:
[url=http://mytool.chinaz.com/baidusort.aspx?host]http://mytool.chinaz.com/baidusort.aspx?host[/url]={域名}&sortType=0
我的正则就是它:(<div class="siteinfo">.+?<font.+?>)(\d*?)(</font>),大家可以自己查看源代码看一下,就知道正则怎么写了。
好了,我们来批量获取一下这些网站的PR和权重:
[img]http://files.jb51.net/file_images/article/201501/2015121115244168.png?2015021115258[/img]
直接看结果:
[img]http://files.jb51.net/file_images/article/201501/2015121115315867.jpg?2015021115326[/img]
单一一个进程扫的话速度会略慢,开10个20个线程批量获取的话应该比较快。