首页 > 解决方案 > 使用 BeautifulSoup 抓取 Google 最热门的电话号码反馈结果

问题描述

我是python的初学者。我试图运行一个脚本,允许一个人输入大学名称来取回电话号码。反馈谷歌结果就是我所需要的。例如搜索"university of alabama" 然后是单词"phone"

但是运行代码的结果给我带来了结果"None"

我需要帮助才能用漂亮的汤找到我的电话号码。

有什么建议么?

在此处输入图像描述

在此处输入图像描述

标签: pythongoogle-mapsbeautifulsoupscrape

解决方案


您使用的find方法错误。您需要给出标签的名称,然后给出可用于唯一标识特定标签的任何属性。您可以使用检查工具找到电话号码所在的标签。

在此处输入图像描述

此外,您可能需要找到您的user-agent并将其作为标头传递以请求从 google 获得完全相同的响应。只需在 Google 中搜索“我的用户代理是什么”即可找到您的用户代理。

from bs4 import BeautifulSoup
import requests
headers={
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
r=requests.get('https://www.google.com/search?q=university+of+alabama+phone',headers=headers)
soup=BeautifulSoup(r.text,'html.parser')
ph_no=soup.find('div',class_='Z0LcW').text
print(ph_no)

输出

+1 205-348-6010

文档

find() 方法 - BeautifulSoup


推荐阅读