【发布时间】:2021-07-20 12:24:25
【问题描述】:
当我们在 google 中搜索一个问题时,它通常会在 sn-p 中产生一个答案,如下所示:
我的目标是在我的 python 代码中抓取此文本(“August 4, 1961”在屏幕截图中被红色标记包围)。
在尝试抓取文本之前,我使用以下代码将 Web 响应存储在文本文件中:
page = requests.get("https://www.google.com/search?q=when+barak+obama+born")
soup = BeautifulSoup(page.content, 'html.parser')
out_file = open("web_response.txt", "w", encoding='utf-8')
out_file.write(soup.prettify())
在 inspect element 部分,我注意到 sn-p 在 div 类 Z0LcW XcVN5d 内(在屏幕截图中被绿色标记包围)。但是,我的 txt 文件中的响应不包含此类文本,更不用说类名了。
我也尝试过this solution,作者在其中抓取了 ID 为 rhs_block 的项目。但是我的回复中没有这样的 id。
我在我的响应 txt 文件中搜索了“1961 年 8 月 4 日”的出现,并试图理解它是否可能是 sn-p。但这些事件似乎都不是我想要的。
我的计划是获取 sn-p 的 div id 或类名并找到它的内容,如下所示:
# IT'S A PSEUDO CODE
containers = soup.find_all(class or id = 'somehting')
for tag in containers:
print(f"tag text : {tag.text}")
有什么办法吗?
注意:我也可以使用除beautifulsoup 和requests 以外的库,只要它能产生结果。
【问题讨论】:
标签: python html selenium web-scraping google-search