【问题标题】:API to search news by yearAPI 按年份搜索新闻
【发布时间】:2012-01-02 12:51:05
【问题描述】:

我想编写 Python 脚本,它将获得 2011、2010、2009 年等关于给定主题的 100 条新闻/文本。

我需要满足以下要求的搜索 API

  1. 免费提供,作为网络服务公开。
  2. 返回给定数量的对象。
  3. 按日期过滤。准确地说,允许获取给定年份的对象。
  4. 返回应该包含与给定相关的相当长的文本(即超过 100 个字) 关键字。
  5. 此文本很容易从整个响应中提取出来。

例如,我尝试使用Google Web Search API

2007 年的 8 个第一批结果:
https://ajax.googleapis.com/ajax/services/search/web?q=Obama+daterange%3A2454102-2454467&start=0&rsz=8&v=1.0

满足第 1 点和第 2 点。使用不太流行的datarange: 搜索运算符添加按年份过滤。第 5 点没问题,因为响应是 JSON。问题出在第 4 点,因为它只返回简短的内容和标题。我有一个包含完整内容的页面的 URL,但是(在另一个 GET 请求之后)很难从整个 HTML 文档中提取此内容。

你知道这样的 API 吗?或者您可能有其他想法如何解决这个问题?

【问题讨论】:

  • 你不想自己索引数据,对吧?
  • 如果是的话,我想我应该写自己的爬虫。这是一个有趣的想法,但目前没有。

标签: api search search-engine data-mining


【解决方案1】:

卫报(一家英国报纸)在提供数据方面做得非常好。他们甚至有谷歌文档集成。签出http://www.guardian.co.uk/open-platform

您需要实时数据,还是一个简单的数据集可以满足您的需求?

【讨论】:

  • 简单的数据集就可以了。该 API 看起来不错,但我看不出它可以返回完整的内容,或者其他一些足够长的文本来分析,需求的第 4 点......
  • 我发现我可以获取“webUrl”指向的整个文章页面,并在进行一些HTML解析后获取所有新闻文本,所以你的回答很有帮助,谢谢。阿克杰普特。
  • 他们对数据使用非常开放。