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