我正在尝试随着时间的推移访问历史谷歌页面排名或 Alexa 排名,以在我为了好玩而制作的搜索引擎上添加一些权重。这将是一个单独的函数,我会在 Python 中调用它(理想情况下),并传入 URL 的参数以及我想要获得平均值的时间(以天为单位),然后我可以使用该信息来衡量我的结果!
我认为这可能会很有趣,但我也觉得这可能很容易通过 API 的一些技巧来完成,一些大师可能可以向我展示并节省我几周不眠之夜!有人可以帮忙吗?
非常感谢!
我知道有四种服务或数据库可以在线访问历史 Alexa 排名数据。您可能需要检查是否有您网站的必要信息:
希望有帮助!
如果您查看 Alexa 页面的 stack Overflow,您可以看到在全球排名旁边,它提供了过去三个月内网站排名的变化。这可能达不到您想要的粒度级别,但您可以相对轻松地抓取这些信息,并且我怀疑您是否会通过查看不同时间长度的变化来获得更多额外信息。长期的答案是自己收集和存储排名,以便您拥有未来的历史记录。
更新:这是示例代码。
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)
Alexa(通过 AWS)使用其 API 访问 Alexa 排名需要付费。每次查询的费用很小,因此您可以相对便宜地获得数十万个排名。我曾经运行过一些搜索目录,随着时间的推移对 Alexa 排名进行索引,所以我对此有经验。关键是,当你可以支付合法服务的费用时,你却通过抓取大量数据来作恶。
关于 PageRank...Google 不提供访问此数据的方法。提供显示 PageRank 的网站使用一种技巧通过 Google 工具栏获取 PageRank。再说一遍,这是不合法的,我不会指望它进行长期数据挖掘,尤其是批量数据挖掘。
此外,如今 PageRank 的重要性已经很小,因为 Google 现在依靠大约 200 个其他因素来对搜索结果进行排名,而不仅仅是衡量网站的链接权限。
您想获得什么样的谷歌排名? 如果是 Alexa 全球排名,您将需要购买 api 访问权限 - 他们会提供试用期,以便您可以获得并测试它。如果你寻找PageRank,你可以去timer4web.com,我不确定他们是否提供api,但你可以询问他们。
问候 凯特