【问题标题】:Advanced Google Search with Python [duplicate]使用 Python 进行高级 Google 搜索 [重复]
【发布时间】:2018-10-16 16:24:12
【问题描述】:

我正在尝试创建一个程序,该程序接受一个具有三个答案选项的问题。我希望它对问题进行谷歌搜索并搜索答案选择的结果,看看哪个出现最多。我还想通过谷歌搜索问题和答案并查看哪个返回的结果更准确。有谁知道如何做到这一点?我知道还有另一个问题可以回答与获取搜索结果提供的 URL 类似的问题,但我想从搜索中获取结果的数量。

【问题讨论】:

  • 请发布您尝试过的内容。
  • @DavidFarrugia 我试过使用导入谷歌和搜索方法,但这只给你结果的网址
  • 贴出你写的代码并具体说明问题所在。否则不幸的是,这似乎是一个 "Give me teh codez" 问题,这在 SO 上是令人厌恶的,并且会立即被否决并关闭。请参阅this 了解原因以及在提问时如何避免这种情况。实际上,这个本质上也是重复的,这也是它被关闭的另一个原因。

标签: python


【解决方案1】:

我还没有时间实际测试一下,但试一试:

from bs4 import BeautifulSoup
import requests

def getNumberOfResults(searchTerm):
    response = requests.get("https://www.google.com/search?q=" + searchTerm).content
    soup = BeautifulSoup(response, 'html.parser')
    result = int(str(soup.find("div", {"id": "resultStats"})).split()[3].replace(",", ""))
    return result

导入必须单独安装,因为它们不是 python 标准库的一部分。你可以用 pip 做到这一点。不知道pip怎么用的可以看看here.

获得每个结果后,您可以比较这些数字,看看哪个数字最大。

要从每个文本中获取文本,就像您在下面的 cmets 中询问的那样,您可以:

def getResultText(searchTerm):
    response = requests.get("https://www.google.com/search?q=" + searchTerm).content
    soup = BeautifulSoup(response, 'html.parser')
    mydivs = soup.findAll("span", {"class": "st"})
    results = []
    for elem in mydivs:
        results.append(str(elem))
    return results

这将返回 google 显示的所有预览文本的列表。它里面仍然有 html 元素,但是您应该仍然可以通过它查看您的关键字。

【讨论】:

  • 请阅读下文
猜你喜欢
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多