当前位置: 首页 > 知识库问答 >
问题:

使用Python/C#进行动态Google搜索

夹谷苗宣
2023-03-14

我想检索谷歌搜索结果计数(106,000,000个结果(0.58秒))。 我用Python写了这个脚本:

import requests, webbrowser
from bs4 import BeautifulSoup

user_input = input("Type in query: ")
print("Googling..")
link = "http://www.google.com/search?q=" + user_input
google_search = requests.get(link)
print(google_search.headers)

#print it out as file

with open("Output.html", "w") as text_file:
    print("{}".format(google_search.text), file=text_file)

但当我查看文件时,结果统计数据就是不见了。 除了Google Search API,还有其他方法可以做到这一点吗?Google Search API很糟糕,因为它很有限,甚至无法得到正确的结果。 我写Python和C#是因为我两个都懂。

共有1个答案

微生旻
2023-03-14

要从Google获得正确的结果,您必须设置正确的user-agenthttp头:

import requests
from bs4 import BeautifulSoup


user_input = input("Type in query: ")
print("Googling for keyword={}..".format(user_input))

params = {
    'q': user_input,
    'hl': 'en'   # <-- set hl=en to obtain english only results.
}
headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'
}

google_search = requests.get("https://www.google.com/search", params=params, headers=headers)
soup = BeautifulSoup(google_search.content, 'html.parser')
print(soup.select_one('#result-stats').text)

打印(例如):

Type in query: moon
Googling for keyword=moon..
About 1,720,000,000 results (0.99 seconds) 
 类似资料:
  • 我想在Java中用标准API进行动态搜索。 在我写的代码中,我们需要用JSON编写url栏中的每个实体。我不想写“普拉卡”。 网址: 这里我们需要写出每个实体,即使我们只搜索一个实体。类型实体,它应该为空。 我的代码如下。假设有多个实体,我想做的是使用它想要搜索的单个实体进行搜索。正如你在照片中看到的,我不想写一个我不需要的实体。你能帮我做什么吗? 我在存储库中的代码 我的服务代码 我在控制器中的

  • 问题内容: 我想使用python脚本在Google中搜索文本,然后返回每个结果的名称,描述和URL。我目前正在使用此代码: 这仅返回URL。如何返回每个URL的名称和描述? 问题答案: 并不是我一直在寻找的东西,但是我发现自己现在是一个不错的解决方案(如果我可以做得更好的话,我可以对其进行编辑)。我像在Google中一样搜索(仅返回URL)和Beautiful Soup软件包结合在一起来解析HTM

  • 问题内容: 任何人都可以帮助我如何编写一个python脚本来搜索google并显示最佳结果的链接。 问题答案: 也许是这样的? 阅读文档http://docs.python.org/ [编辑]由于AJAX API已失效,因此您可以使用第三方服务,例如SerpApi,它们确实提供了Python库。

  • 问题内容: 我试图从HTML中提取许多页面的数据(数字)。每个页面的数据都不同。当我尝试使用soup.select(’span [class =“ pull- right”]’)时,它应该给我编号,但只有标签出现。我相信这是因为网页中使用了Javascript。180,476是我要在许多页面上使用的特定HTML处的数据位置: 我的代码(这在很多页面上都是循环的): 输出: 范例网址:https:/

  • 问题内容: 我有一个关于使用JdbcTemplate进行动态查询的问题。 我的代码如下: 现在,我的问题是,我想要与插入查询中的自动生成问号相同数量的“值”。 现在,值变量考虑为一个字符串,因此,如果我有2个或更多问号,则在值变量中只有一个用逗号分隔的完整字符串,因此它不起作用。 见下面我的查询: 我想要如下: 问题答案: }

  • 用git grep 命令查找Git库里面的某段文字是很方便的. 当然, 你也可以用unix下的'grep'命令进行搜索, 但是'git grep'命令能让你不用签出(checkout)历史文件, 就能查找它们. 例如, 你要看 git.git 这个仓库里每个使用'xmmap'函数的地方, 你可以运行下面的命令: $ git grep xmmap config.c: co

  • 我想做一个网站搜索使用谷歌的搜索API,但该网站将为每个请求不同。 问题是google的web搜索API已被弃用,但如果不是,我可以使用它,只需发送以下请求: 我可以将其解析为JSON并获得resultCount,这就是我要查找的数字。 我一直在使用这个不推荐使用的选项,但经过这么多的请求,我得到了403,谷歌提醒我,我使用的是一个不推荐使用的API,我达到了我的每日配额。我知道谷歌希望开发者开始

  • 我正在为spring批处理使用java配置(spring boot)。我有一个员工Id列表,对于每个Id,我需要运行一个查询(如下所示),然后处理数据。 我知道我们可以使用阅读器。setPreparedStatementSetter动态设置上述SQL中的参数。但是,我不确定如何对列表中的每个员工id重复批处理过程。即使我将reader()标记为@StepScope,也只会调用一次reader。(即