我正在寻找api / program / interface来获取以下信息。
我希望看到特定搜索字词的使用次数及其/每周/每月/每年的受欢迎程度细分及其在特定页面中的排名。
我找到了googlesearchpositionfinder.com和google.com/trends,但我手头搜索的5000个条款没有发生。我也找到了www.juiceanalytics.com/openjuice/programmatic-google-trends-api但它不允许我做两年的分解。
基本上我正在尝试创建搜索短语的排名,他们更受欢迎的周(期间)以及特定网站(例如城市词典)如何出现在谷歌搜索排名中。见上文(1-2)
这也不一定是在python中这就是我发现用...构建的......
最新编辑: 以下两个答案都有帮助。
我最终直接使用curl反对google,然后使用c#程序解析结果。
答案 0 :(得分:5)
Google趋势不允许在两年的范围内进行搜索,但一年只能搜索一次 使用pyGTrends.py即可:
from import pyGTrends
from csv import DictReader
r = pyGTrends(username, password)
r.download_report(('stackoverflow'), date='2009')
export1 = DictReader(r.csv().split('\n'))
r.download_report(('stackoverflow'), date='2010')
export2 = DictReader(r.csv().split('\n'))
然后您可以加入export1和export2以满足您的需求。
或更好
您可以下载没有日期过滤器的报告,并使用Python执行脏任务 查看以下脚本,根据需要排列date_MIN \ date_MAX。
from pyGTrends import pyGTrends
import csv
import datetime
date_MIN ='2007/01/01'
date_MAX ='2009/03/01'
r = pyGTrends('username','password')
r.download_report(('stackoverflow'))
csv_reader = csv.reader(r.csv().split('\n'))
with open('gtrends_report.csv', 'w') as csv_out:
csv_writer = csv.writer(csv_out)
for count,row in enumerate(csv_reader):
if count == 0:
csv_writer.writerow(row)
else:
date = datetime.datetime.strptime(row[0], "%b %d %Y")
if datetime.datetime.strptime(date_MIN, "%Y/%m/%d") <= date <= datetime.datetime.strptime(date_MAX, "%Y/%m/%d"):
csv_writer.writerow(row)
答案 1 :(得分:2)
我遇到了同样的问题,我刚刚写了一个小班,通过Google AJAX Search API查看排名,你可以在这里下载:
http://bohuco.net/blog/2010/07/google-ranking-checker-class-in-php/