【问题标题】:Get request to Google Search获取对 Google 搜索的请求
【发布时间】:2017-08-19 10:47:39
【问题描述】:

我正在尝试使用来自 Google 的搜索结果获取 HTML。例如发送 GET 请求到:

https://www.google.ru/?q=1111

但是如果在浏览器中一切正常,当我尝试将它与 curl 一起使用或在 Google 中通过“查看源代码”获取源代码时,只有一些 Javascript 代码,没有搜索结果。这是某种保护吗?我能做什么?

【问题讨论】:

标签: google-chrome curl get google-search


【解决方案1】:

您现在必须使用 Google Search API 来发出 GET 请求。

所有其他方法已被阻止。

【讨论】:

  • 问题是它必须针对特定网站。
  • 注意:这需要超过 x 个请求的成本。
【解决方案2】:

您问题的页面是带有输入字段的 Google 搜索页面。

搜索结果页面是这个:

https://www.google.ru/search?q=1111

轮换代理和用户代理,并延迟类似的请求,以从 Google 搜索结果页面获取 HTML 并减少禁令数量。

或使用SerpApi 访问 HTML 并从中提取数据。它有免费试用版。

curl -s 'https://serpapi.com/search?q=coffee'

输出

{
  // Omitted

  "organic_results": [
    {
      "position": 1,
      "title": "Coffee - Wikipedia",
      "link": "https://en.wikipedia.org/wiki/Coffee",
      "displayed_link": "en.wikipedia.org › wiki › Coffee",
      "snippet": "Coffee is a brewed drink prepared from roasted coffee beans, the seeds of berries from certain Coffea species. When coffee berries turn from green to bright red ...",
      "sitelinks": {
        "expanded": [
          {
            "title": "History",
            "link": "https://en.wikipedia.org/wiki/History_of_coffee",
            "snippet": "The history of coffee dates back to the 15th century, and possibly ..."
          },
          {
            "title": "International Coffee Day",
            "link": "https://en.wikipedia.org/wiki/International_Coffee_Day",
            "snippet": "International Coffee Day (1 October) is an occasion that is ..."
          },
          {
            "title": "List of coffee drinks",
            "link": "https://en.wikipedia.org/wiki/List_of_coffee_drinks",
            "snippet": "Milk coffee - Nitro cold brew coffee - List of coffee dishes - ..."
          },
          {
            "title": "Portal:Coffee",
            "link": "https://en.wikipedia.org/wiki/Portal:Coffee",
            "snippet": "Coffee is a brewed drink prepared from roasted coffee beans, the ..."
          },
          {
            "title": "Coffee bean",
            "link": "https://en.wikipedia.org/wiki/Coffee_bean",
            "snippet": "A coffee bean is a seed of the Coffea plant and the source for ..."
          },
          {
            "title": "Geisha",
            "link": "https://en.wikipedia.org/wiki/Geisha_(coffee)",
            "snippet": "Geisha coffee, sometimes referred to as Gesha coffee, is a type of ..."
          }
        ],
        "list": [
          {
            "date": "Color‎: ‎Black, dark brown, light brown, beige"
          }
        ]
      },
      "rich_snippet": {
        "bottom": {
          "detected_extensions": {
            "introduced_th_century": 15
          },
          "extensions": [
            "Introduced‎: ‎15th century",
            "Color‎: ‎Black, dark brown, light brown, beige"
          ]
        }
      },
      "cached_page_link": "https://webcache.googleusercontent.com/search?q=cache:U6oJMnF-eeUJ:https://en.wikipedia.org/wiki/Coffee+&cd=2&hl=sv&ct=clnk&gl=se",
      "related_pages_link": "https://www.google.se/search?gl=se&hl=sv&q=related:https://en.wikipedia.org/wiki/Coffee+coffee&sa=X&ved=2ahUKEwjJ9p2p_KXuAhVlRN8KHf22D8wQHzABegQIAhAJ"
    }
  },

  // ...
}

免责声明:我在 SerpApi 工作。

【讨论】:

    【解决方案3】:

    您可以在浏览器中加载它,然后通过 Javascript 抓取结果。

    或者你可以使用谷歌API,但是如果你每天请求超过100次似乎需要付费。

    【讨论】:

    • 您的方法将很快被阻止。 Google 将显示“我们希望确保您不是机器人……”屏幕,其中包含您必须解决的验证码才能继续搜索。
    • @BrianSmith,是的,当然会。但每页只有一次。
    • @John 每次查询仅一次(在结果出现之前,然后单击页面时将没有验证码)。每个查询。就像我说的那样。
    【解决方案4】:

    为答案添加更多调味料,因为它们不正确,甚至不回应您的问题。

    首先,只要您不通过它损害他们的服务(类似 DoS),抓取 Google 是完全合法的。
    方法也没有被屏蔽,只是没那么简单。

    速度取决于你的方法,它不必很慢..
    如果需要,您可以在一分钟内抓取一万个关键字页面。

    您会在此处找到该主题的更好答案:Is it ok to scrape data from Google results?

    您的 curl 问题确实来自保护,Google 不允许自动访问,并且它有一套非常复杂的检测算法。
    它们从简单的用户代理检查(这就是直接阻止您的原因)到试图检测异常查询或相关查询的人工智能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-12
      • 2016-04-07
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多