我需要从谷歌搜索引擎信息栏中抓取文本数据。如果有人使用关键字“西门子”在谷歌搜索引擎上搜索。一个小的信息栏出现在谷歌搜索结果的右侧。我想为那个信息栏收集一些文本信息。我如何使用requests和Beautifulsoup来做到这一点呢?下面是我写的一些代码。
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')
红色标记区域为信息栏
发布于 2019-03-15 08:41:18
您可以使用BeautifuLSoup中的find函数来检索具有给定类名、id、css选择器、xpath等的所有元素。如果您检查信息栏(右键单击它并给出' inspect '),您可以找到该栏的唯一类名或id。使用它可以从BeautifulSoup解析的整个html中单独过滤信息栏。
查看BeautifulSoup中的find()和findall()以实现您的输出。总是先按id查找,因为每个id对于html元素来说都是唯一的。如果没有对应的id,那么可以选择其他选项。
要获取URL,请在[]内使用google.com/ search ?q=[]进行搜索查询。对于包含多个单词的查询,请在其间使用'+‘
https://stackoverflow.com/questions/55173768
复制相似问题