爬行Top10 PR / Alexa站点的算法

时间:2014-06-27 18:50:40

标签: java python web-crawler pagerank alexa

我正在尝试编写一个脚本,该脚本将抓取当前排名前10位的PR / Alexa网站。因为PR / Alexa经常变化。所以我的脚本应该照顾这个我的意思是,如果今天没有一个网站在前10名,但可能是明天。

我不知道如何开始。我知道爬行的概念,但在这里我被卡住了。可能有top50网站甚至500强网站。我当然可以配置。

我读过关于谷歌蜘蛛的信息,但这个简单的任务非常复杂。 Google,Yahoo,Bing如何在网络上抓取数十亿个网站。我只是好奇。什么是光标点,我的意思是谷歌如何识别新发布的网站。

好的这些是非常深刻的细节,我稍后会读到这些。现在我更关心我的问题。我怎么能抓住前10个PR网站。

你能提供一个样本程序,以便我能更好地理解吗?

2 个答案:

答案 0 :(得分:1)

获取top25sites相当简单(如果我理解你想做什么)

代码:

from bs4 import BeautifulSoup
from urllib.request import urlopen
b = BeautifulSoup(urlopen("http://www.alexa.com/topsites").read())
paragraphs = b.find_all('p', {'class':'desc-paragraph'})
for p in paragraphs:
   print(p.a.text)

输出:

Google.com
Facebook.com
Youtube.com
Yahoo.com
Baidu.com
Wikipedia.org
(...)

但请记住,某些国家的法律可能更为严格。自担风险。

答案 1 :(得分:0)

Alexa有付费API您可以使用


**还有一个免费的API **


有一个免费的API(虽然我无法在任何地方找到任何文档)。

http://data.alexa.com/data?cli=10&url=%YOUR_URL% 您还可以通过以下方式查询更多数据:

http://data.alexa.com/data?cli=10&dat=snbamz&url=%YOUR_URL% dat中的所有字母都决定了你得到的信息。这个数据字符串是我能够找到的,似乎有更多选项。此外,cli完全改变输出,这个选项使它返回一个包含大量信息的XML。

编辑:此API是Alexa工具栏使用的API。

Fetching Alexa data