【问题标题】:Algorithm of crawling Top10 PR/Alexa sites [closed]爬取 Top10 PR/Alexa 网站的算法 [关闭]
【发布时间】:2014-06-27 18:50:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: java python web-crawler pagerank alexa


【解决方案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
(...)

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

【讨论】:

    【解决方案2】:

    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 工具栏使用的。

    Fetching Alexa data

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 2019-07-19
      • 2011-02-19
      • 1970-01-01
      相关资源
      最近更新 更多