Python 如何从谷歌搜索信息栏抓取文本数据

Python 如何从谷歌搜索信息栏抓取文本数据,python,beautifulsoup,request,Python,Beautifulsoup,Request,我需要从谷歌搜索引擎信息栏抓取文本数据。如果有人使用关键词“西门子”在谷歌搜索引擎上搜索。谷歌搜索结果的右侧会出现一个小信息栏。我想收集一些信息栏的文字信息。如何使用requests和beautifulsou实现这一点。下面是我写的一些代码 from bs4 import BeautifulSoup as BS import requests from googlesearch import search from googleapiclient.discovery import build

我需要从谷歌搜索引擎信息栏抓取文本数据。如果有人使用关键词“西门子”在谷歌搜索引擎上搜索。谷歌搜索结果的右侧会出现一个小信息栏。我想收集一些信息栏的文字信息。如何使用requests和beautifulsou实现这一点。下面是我写的一些代码

from bs4 import BeautifulSoup as BS
import requests
from googlesearch import search
from googleapiclient.discovery import build

url = 'https://www.google.com/search?ei=j-iKXNDxDMPdwALdwofACg&q='


com = 'siemens'

#for url in search(com, tld='de', lang='de', stop=10):
#    print(url)

response = requests.get(url+com)
soup = BS(response.content, 'html.parser')
红色标记的区域是信息栏


您可以使用BeautifuLSoup中的find函数检索具有给定类名、id、css选择器、xpath等的所有元素。如果您检查信息栏(右键单击它并给出“inspect”),您可以找到该栏的唯一类名或id。使用它可以从BeautifulSoup解析的整个html中单独过滤信息栏

查看BeautifulSoup中的find()和findall()以获得输出。始终先按id查找,因为每个id对于html元素都是唯一的。如果没有id,那么选择其他选项


要获取URL,请使用google.com/search?q=[]并在[]内使用搜索查询。对于具有多个单词的查询,请在查询之间使用“+”

您可以使用BeautifuLSoup中的find函数检索具有给定类名、id、css选择器、xpath等的所有元素。如果您检查信息栏(右键单击它并给出“inspect”),您可以找到该栏的唯一类名或id。使用它可以从BeautifulSoup解析的整个html中单独过滤信息栏

查看BeautifulSoup中的find()和findall()以获得输出。始终先按id查找,因为每个id对于html元素都是唯一的。如果没有id,那么选择其他选项


要获取URL,请使用google.com/search?q=[]并在[]内使用搜索查询。对于包含多个单词的查询,请在中间使用“+”

确保您使用的是
用户代理来伪造真实的用户访问,否则可能导致来自Google的请求被阻止。用户代理的定义

要从页面中直观地选择元素,可以使用Chrome扩展来获取CSS选择器

代码和:

从bs4导入美化组
导入请求,lxml
标题={
“用户代理”:
“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582”
}
response=requests.get('https://www.google.com/search?q=simens,headers=headers)。文本
汤=BeautifulSoup(响应“lxml”)
标题=汤。选择一个('.SPZz6b h2')。文本
字幕=汤。选择一个('.wwUB2c span')。文本
网站=汤。选择一个('.ellip.ellip')。文本
snippet=soup。选择一个('.Uo8X3b+span')。文本
打印(f'{title}\n{subtitle}\n{website}\n{snippet}')
输出:

西门子
自动化公司
西门子公司
西门子公司是一家总部位于慕尼黑的德国跨国企业集团,是欧洲最大的工业制造公司,在国外设有分公司。
或者,您也可以使用SerpApi。这是一个付费API,免费试用5000次搜索

要集成的代码:

导入操作系统
从serpapi导入谷歌搜索
参数={
“引擎”:“谷歌”,
“q”:“西门子”,
“api_键”:os.getenv(“api_键”),
}
搜索=谷歌搜索(参数)
结果=search.get_dict()
标题=结果[“知识图表”][“标题”]
字幕=结果[“知识图表”][“类型”]
网站=结果[“知识图表”][“网站”]
snippet=结果[“知识图”][“描述”]
打印(f'{title}\n{subtitle}\n{website}\n{snippet}')
输出:

西门子
自动化公司
http://www.siemens.com/
西门子公司是一家总部位于慕尼黑的德国跨国企业集团,是欧洲最大的工业制造公司,在国外设有分公司。
免责声明,我在SerpApi工作


确保您使用的是
用户代理
来伪造真实的用户访问,否则可能导致来自谷歌的请求被阻止。用户代理的定义

要从页面中直观地选择元素,可以使用Chrome扩展来获取CSS选择器

代码和:

从bs4导入美化组
导入请求,lxml
标题={
“用户代理”:
“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582”
}
response=requests.get('https://www.google.com/search?q=simens,headers=headers)。文本
汤=BeautifulSoup(响应“lxml”)
标题=汤。选择一个('.SPZz6b h2')。文本
字幕=汤。选择一个('.wwUB2c span')。文本
网站=汤。选择一个('.ellip.ellip')。文本
snippet=soup。选择一个('.Uo8X3b+span')。文本
打印(f'{title}\n{subtitle}\n{website}\n{snippet}')
输出:

西门子
自动化公司
西门子公司
西门子公司是一家总部位于慕尼黑的德国跨国企业集团,是欧洲最大的工业制造公司,在国外设有分公司。
或者,您也可以使用SerpApi。这是一个付费API,免费试用5000次搜索

要集成的代码:

导入操作系统
从serpapi导入谷歌搜索
参数={
“引擎”:“谷歌”,
“q”:“西门子”,
“api_键”:os.getenv(“api_键”),
}
搜索=谷歌搜索(参数)
结果=search.get_dict()
标题=结果[“知识图表”][“标题”]
字幕=结果[“知识图表”][“类型”]
网站=结果[“知识图表”][“网站”]
snippet=结果[“知识图”][“描述”]
打印(f'{title}\n{subtitle}\n{website}\n{snippet}')
输出:

西门子
自动化公司
http://www.siemens.com/
西门子公司是一家总部位于慕尼黑的德国跨国企业集团,是欧洲最大的工业制造公司,在国外设有分公司。
免责声明,我在SerpApi工作


但你需要url才能进入谷歌显示所有结果的特定页面。我没有那个特定页面的url。我正在使用“搜索”来搜索“谷歌搜索”软件包。你可以使用google.com/search?q=[