我正在尝试使用BeautifulSoup webscrape网站的价格:
容器类如下所示:
我想从该类中检索的对象示例如下所示:
但我不知道为什么在包含类 c1_t2i
下没有找到任何对象 . 它始终在 print(len(containers))
中打印值0
代码如下所示:
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
myUrl = "https://www.lazada.com.ph/catalog/?q=lighters&_keyori=ss&from=input&spm=a2o4l.home.search.go.239e6ef0RMwbfH"
uClient = uReq(myUrl)
pageHtml = uClient.read()
uClient.close()
pageSoup = soup(pageHtml, "html.parser")
containers = pageSoup.findAll("div", {"class": "c1_t2i"})
print(len(containers))
1 回答
如果您打开页面,并查看页面源 . 您将无法找到“
c1_t2i
". The class you are looking for seems to be "c3e8SH
”类 .但是,我不确定为什么会这样 . 我正在使用铬 . 你可以使用铬并检查吗?您还可以打印出已解析的HTML,并搜索文本“
c1_t2i
" or "c3e8SH
”,无论哪个可用 .EDIT 1:
我想我理解这个问题 . 使用Javascript生成检查元素时看到的HTML . 但是,使用该脚本获得的原始html中没有相同的类 . 您需要使用像PhantomJS这样的东西来执行JS并获得生成的HTML . 查看this主题 .
EDIT 2:
您还可以尝试禁用JS并查看出现的页面,然后查看是否可以从基本HTML中选择类名 .