【问题标题】:How to Retrieve 10 first Google Search Results Using Python Requests如何使用 Python 请求检索 10 个第一个 Google 搜索结果
【发布时间】:2016-06-05 09:18:17
【问题描述】:

我看到很多关于这个主题的问题,我发现 Google 一直在更新其搜索引擎 API 的工作方式。

此链接 > get the first 10 google results using googleapi 完全显示了我需要的东西,但问题是我不知道是否可以再这样做了。

我的学期论文需要这个,但是通过阅读 Google 文档我找不到这样做的方法。 我已经完成了“入门”的工作,我得到的只是一个使用自定义搜索引擎 (CSE) 的私人搜索引擎。

【问题讨论】:

    标签: python google-api urllib google-search-api


    【解决方案1】:

    或者,您可以使用 Python、Selenium 和 PhantomJS 或其他浏览器浏览 Google 的搜索结果并抓取内容。我个人没有这样做,不知道那里是否有挑战。

    我认为最好的方法是使用他们的搜索 API。请尝试您指出的那个。如果它不起作用,请寻找新的 API。

    【讨论】:

    • 谢谢解答,我去看看selenium,试试用Yahoo!在最坏的情况下。
    • 如果对您有帮助,您可以投票并接受答案。
    • 已经点赞,只是不接受,因为它实际上并没有解决问题,点赞看不到,因为我没有 15 分nyet,但你拥有它???
    【解决方案2】:

    我在尝试自己解决这个问题时遇到了这个问题,我找到了一个更新的解决方案。

    基本上我在Google Custom Search 使用了这个指南来生成我自己的 api 密钥和搜索引擎,然后使用 python 请求来检索 json 结果。

    def search(query):
        api_key = 'MYAPIKEY'
        search_engine_id = 'MYENGINEID'
        url = "https://www.googleapis.com/customsearch/v1/siterestrict?key=%s&cx=%s&q=%s" % (api_key, search_engine_id, query)
        result = requests.Session().get(url)
        json = simplejson.loads(result.content)
        return json
    

    【讨论】:

      【解决方案3】:

      我回答了您通过链接附加的问题。

      这是该答案的linkfull code example。我将复制代码以便更快地访问。


      使用返回 JSON 的自定义脚本的第一种方式:

      from bs4 import BeautifulSoup
      import requests
      import json
      
      headers = {
          'User-agent':
          "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
      }
      
      html = requests.get('https://www.google.com/search?q=java&oq=java',
                          headers=headers).text
      
      soup = BeautifulSoup(html, 'lxml')
      
      summary = []
      
      for container in soup.findAll('div', class_='tF2Cxc'):
          heading = container.find('h3', class_='LC20lb DKV0Md').text
          article_summary = container.find('span', class_='aCOpRe').text
          link = container.find('a')['href']
      
          summary.append({
              'Heading': heading,
              'Article Summary': article_summary,
              'Link': link,
          })
      
      print(json.dumps(summary, indent=2, ensure_ascii=False))
      

      使用来自 SerpApi 的 Google Search Engine Results API

      import os
      from serpapi import GoogleSearch
      
      params = {
          "engine": "google",
          "q": "java",
          "api_key": os.getenv("API_KEY"),
      }
      
      search = GoogleSearch(params)
      results = search.get_dict()
      
      for result in results["organic_results"]:
         print(f"Title: {result['title']}\nLink: {result['link']}\n")
      

      免责声明,我为 SerpApi 工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-15
        • 2021-02-01
        • 1970-01-01
        • 2011-06-16
        • 2021-10-28
        • 2011-03-27
        相关资源
        最近更新 更多