草庐IT

python - 谷歌搜索排名和趋势API

coder 2023-08-21 原文

我正在寻找一个api/程序/接口(interface)以获取以下信息。

  • 一个字词的整体流行度-ala Google Trends
  • 网站如何针对所述字词显示排名-ala googlesearchpositionfinder
    以及有多少个网站使用了该术语-标准google,例如搜索foobar和城市词典显示在9,000,000
  • 的位置5

    我想查看使用特定搜索词的次数,以及其/每周/每月/每年/每年的受欢迎程度分割以及其在特定页面中的排名。

    我已经找到了googlesearchpositionfinder.com和google.com/trends,但是我没有5000个要手动搜索的字词。我还发现了www.juiceanalytics.com/openjuice/programmatic-google-trends-api,但是它不允许我进行2年的分解。

    基本上,我正在尝试创建搜索短语的排名,它们更受欢迎的星期(期间)以及特定网站(例如城市词典)如何在Google的搜索条件中显示这些术语。见上文(1-2)

    而且这不必在python中,这就是我发现要用它构建的...

    最新编辑:
    以下两个答案都有帮助。

    我最终直接针对Google使用curl,然后使用C#程序解析结果。

    最佳答案

    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)
    

    关于python - 谷歌搜索排名和趋势API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635031/

    有关python - 谷歌搜索排名和趋势API的更多相关文章

    1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

      关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

    2. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

      我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

    3. ruby-on-rails - Nokogiri:使用 XPath 搜索 <div> - 2

      我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll

    4. Python 相当于 Perl/Ruby ||= - 2

      这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

    5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

      什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

    6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

      华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

    7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

      在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

    8. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

      我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

    9. ruby-on-rails - Mandrill API 模板 - 2

      我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h

    10. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

      本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

    随机推荐