-1

我正在尝试编写一个脚本来抓取当前排名前 10 的 PR/Alexa 网站。因为 PR/Alexa 经常变化。所以我的脚本应该解决这个问题我的意思是如果今天没有前 10 名的网站但明天可能会出现。

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

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

好的,这些都是非常深刻的细节,我稍后会读到这些。现在我更关心我的问题。我如何爬取前 10 名 PR 网站。

你能提供一个示例程序以便我更好地理解吗?

4

2 回答 2

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
(...)

但请记住,某些国家/地区的法律可能会更加严格。风险自负。

于 2014-06-27T19:53:53.803 回答
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 中的所有字母都决定了您获得的信息。这个 dat 字符串是我能找到的,似乎有更多选择。此外,cli 完全改变了输出,这个选项使它返回一个包含大量信息的 XML。

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

获取 Alexa 数据

于 2014-06-27T19:23:13.720 回答