美丽的汤在课堂上找不到任何元素

时间:2018-12-10 09:22:21

标签: python beautifulsoup

我正在尝试使用BeautifulSoup来抓取网站的价格:

容器类如下所示:

enter image description here

我要从该类检索的对象的示例如下所示: enter image description here

enter image description here

但是我不知道为什么在包含类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 个答案:

答案 0 :(得分:2)

如果打开页面并查看页面源。您将找不到类“ c1_t2i”。您正在寻找的课程似乎是“ c3e8SH”。

但是,我不确定为什么会这样。我正在使用Chrome。您可以使用chrome进行检查吗?您还可以打印出已解析的HTML,并搜索文本“ c1_t2i”或“ c3e8SH”(其中可用的文本)。

编辑1:

我想我明白问题所在。当您检查元素时看到的HTML是使用Javascript生成的。但是,使用脚本获得的原始html中没有相同的类。您需要使用PhantomJS之类的东西来执行JS并获取生成的HTML。检出this线程。

编辑2:

您还可以尝试禁用JS并查看出现的页面,然后查看是否可以从基本HTML中选择类名称。