1

我正在尝试访问历史 google 页面排名或 alexa 排名,以便在我正在制作的搜索引擎上添加一些权重。这将是一个单独的函数,我将在 Python 中调用(理想情况下)并传入 URL 的参数以及我想要获得平均值的时间,以天为单位,然后我可以使用该信息来衡量我的结果!

我认为工作可能会很有趣,但我也觉得这可能很容易通过一些 API 技巧来完成,一些大师可能能够向我展示并节省我几个不眠的星期!任何人都可以帮忙吗?

非常感谢 !

4

4 回答 4

4

我知道四个服务或数据库,它们提供对历史 Alexa 排名数据的在线访问。如果您的站点的必要信息可用,您可能需要检查:

希望能帮助到你!

于 2015-12-18T09:58:48.487 回答
1

如果您查看 Alexa 页面的堆栈溢出,您会看到在全球排名旁边,它提供了过去三个月网站排名的变化。这可能达不到您想要的粒度级别,但是您可以相对容易地刮出这些信息,我怀疑您是否会通过查看不同时间长度的变化获得更多额外信息。长期的答案是自己收集和存储排名,以便您拥有未来的历史记录。

更新:这是示例代码。

import mechanize
import cookielib
from BeautifulSoup import BeautifulSoup


def changerankscrapper(site):
    """
    Takes a site url, scrapes that site's Alexa page,
    and returns the site's global Alexa rank and the
    change in that rank over the past three months.
    """

    #Create Alexa URL
    url = "http://www.alexa.com/siteinfo/" + site

    #Get HTML
    cj = cookielib.CookieJar()
    mech = mechanize.OpenerFactory().build_opener(mechanize.HTTPCookieProcessor(cj))
    request = mechanize.Request(url)
    response = mech.open(request)
    html = response.read()

    #Parse HTML with BeautifulSoup
    soup = BeautifulSoup(html)

    globalrank = int(soup.find("strong", { "class" : "metricsUrl font-big2 valign" }).text)
    changerank = int(soup.find("span", { "class" : "change-wrapper change-up" }).text)


    return globalrank, changerank

#Example
site = "http://stackoverflow.com/"
globalrank, changerank = changerankscrapper(site)
print(globalrank)
print(changerank)
于 2013-10-09T22:51:05.647 回答
1

Alexa(通过 AWS)收取使用其 API 访问 Alexa 排名的费用。每次查询的费用微乎其微,因此您可以相对便宜地获得数十万排名。我曾经运行一些搜索目录,随着时间的推移索引 Alexa 排名,所以我有这方面的经验。关键是,当您可以为合法服务付费时,您通过抓取大量数据是邪恶的。

关于 PageRank... Google 不提供访问这些数据的方法。提供显示您的 PageRank 的网站使用技巧通过 Google 工具栏获取 PageRank。再说一遍,这是不合法的,我不会指望它进行长期数据挖掘,尤其是批量数据挖掘。

此外,如今 PageRank 的作用微乎其微,因为 Google 现在依靠大约 200 个其他因素来对搜索结果进行排名,而不仅仅是衡量网站的链接权限。

于 2013-10-16T01:19:58.547 回答
0

您想访问什么样的谷歌排名?如果是 Alexa 全球排名,您将需要购买 api 访问权限——他们提供试用期,以便您获取并测试它。如果你寻找 PageRank 你可以去 timer4web.com,我不确定他们是否提供 api,但你可以问他们。

问候凯特

于 2015-09-22T12:16:11.223 回答