python - Beautifulsoup 找不到标签

标签 python html beautifulsoup tags

我正在做一个关于 beautifulsoup 的项目

from bs4 import BeautifulSoup as soup
from requests import get



url = "https://www.yelp.com/search?find_desc=&find_loc=New+York%2C+NY&ns=1"
clnt = get(url)
page=soup(clnt.text,"html.parser")
container = page.findAll("div",{"class":"lemon--div__373c0__1mboc container__373c0__ZB8u4 hoverable__373c0__3CcYQ margin-t3__373c0__1l90z margin-b3__373c0__q1DuY padding-t3__373c0__1gw9E padding-r3__373c0__57InZ padding-b3__373c0__342DA padding-l3__373c0__1scQ0 border--top__373c0__3gXLy border--right__373c0__1n3Iv border--bottom__373c0__3qNtD border--left__373c0__d1B7K border-color--default__373c0__3-ifU"})

container = container[1]
url2= "https://www.yelp.com"+container.a["href"]
clnt2 = get(url2)
page2 = soup(clnt2.text, 'html.parser')

info = page2.find("div",{"class":"lemon--div__373c0__1mboc island__373c0__3fs6U u-padding-t1 u-padding-r1 u-padding-b1 u-padding-l1 border--top__373c0__19Owr border--right__373c0__22AHO border--bottom__373c0__uPbXS border--left__373c0__1SjJs border-color--default__373c0__2oFDT background-color--white__373c0__GVEnp"})

contact=info.div (Example contact variable)

在这个“info”变量中,我得到了包含所有联系方式详细信息的div,我想从该div中获取联系号码

当我打印这个“信息”变量时,它还显示联系人号码。存在于变量中,包括其他详细信息,但当我遍历 div 以获得联系号码时,我找不到它。 我还尝试获取所有子 div,甚至包括 div 本身的类,但我无法获取

给出的第一个网址是:https://www.yelp.com/search?find_desc=&find_loc=New+York%2C+NY&ns=1

第二个网址“url2”是这样的:https://www.yelp.com/biz/levain-bakery-new-york其中有联系方式

有什么解决办法吗???

最佳答案

您可以通过类(class)名称获取联系电话。但我严重怀疑它是否适用于任何给定页面,因为类名称似乎是动态的。不过你可以尝试一下。

from bs4 import BeautifulSoup as soup
from requests import get

url = "https://www.yelp.com/search?find_desc=&find_loc=New+York%2C+NY&ns=1"
clnt = get(url)
page=soup(clnt.text,"html.parser")
container = page.findAll("div",{"class":"lemon--div__373c0__1mboc container__373c0__ZB8u4 hoverable__373c0__3CcYQ margin-t3__373c0__1l90z margin-b3__373c0__q1DuY padding-t3__373c0__1gw9E padding-r3__373c0__57InZ padding-b3__373c0__342DA padding-l3__373c0__1scQ0 border--top__373c0__3gXLy border--right__373c0__1n3Iv border--bottom__373c0__3qNtD border--left__373c0__d1B7K border-color--default__373c0__3-ifU"})

container = container[1]
url2= "https://www.yelp.com"+container.a["href"]
clnt2 = get(url2)
page2 = soup(clnt2.text, 'html.parser')

info = page2.find("div",{"class":"lemon--div__373c0__1mboc island__373c0__3fs6U u-padding-t1 u-padding-r1 u-padding-b1 u-padding-l1 border--top__373c0__19Owr border--right__373c0__22AHO border--bottom__373c0__uPbXS border--left__373c0__1SjJs border-color--default__373c0__2oFDT background-color--white__373c0__GVEnp"})

ContactNumber = info.find("p",{"class":"lemon--p__373c0__3Qnnj text__373c0__2pB8f text-color--normal__373c0__K_MKN text-align--left__373c0__2pnx_"})

print(ContactNumber.text)

输出:

(917) 464-3769

关于python - Beautifulsoup 找不到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60316514/

相关文章:

python - 使用python解析相对链接和绝对链接

python - 在辅助监视器中打开 pygame 全屏窗口

python - TkInter 中小部件的 .pack 和 .configure 之间的区别?

python - 为什么 python time.sleep() 出现阻止异步进程读取?

JavaScript window.location 没有在请求头中设置 referer

python - 使用 BeautifulSoup 提取图像链接

python - remote_api_shell.py 与本地主机 dev_appserver

python - 为什么用美汤解析这个标签是空的?

javascript - Meteor JS 报错

python-3.x - 如何从网络上抓取某一类属性的所有子级?