Python 漂亮的汤在一个类下找不到任何元素

Python 漂亮的汤在一个类下找不到任何元素,python,beautifulsoup,Python,Beautifulsoup,我正在尝试使用BeautifulSoup来降低网站的价格: 容器类如下所示: 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.239e

我正在尝试使用BeautifulSoup来降低网站的价格:

容器类如下所示:

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))

我希望从该类检索的对象示例如下所示:

但是我不知道为什么在包含类
c1\u t2i
下找不到对象。它总是在
print(len(containers))

代码如下所示:

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))

如果打开页面,并查看页面源代码。您将无法找到类“
c1\u t2i
”。您正在查找的类似乎是“
c3e8SH

然而,我不知道为什么会发生这种情况。我用的是铬。你能用chrome检查一下吗?您还可以打印解析后的HTML,并搜索文本“
c1_t2i
”或“
c3e8SH
”,以可用的文本为准

编辑1:

我想我理解这个问题。检查元素时看到的HTML是使用Javascript生成的。但是,使用脚本获得的原始html中没有相同的类。您需要使用PhantomJS之类的工具来执行JS并获得结果HTML。检查线程

编辑2:


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

如果打开页面并查看页面源代码。您将无法找到类“
c1\u t2i
”。您正在查找的类似乎是“
c3e8SH

然而,我不知道为什么会发生这种情况。我用的是铬。你能用chrome检查一下吗?您还可以打印解析后的HTML,并搜索文本“
c1_t2i
”或“
c3e8SH
”,以可用的文本为准

编辑1:

我想我理解这个问题。检查元素时看到的HTML是使用Javascript生成的。但是,使用脚本获得的原始html中没有相同的类。您需要使用PhantomJS之类的工具来执行JS并获得结果HTML。检查线程

编辑2:


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

我在页面源代码中看到了
c1_t2i
c3e8SH
。每个项目都有自己的
c3e8SH
类。但是我认为包含所有项目的那一个是
c1\u t2i
?我在这台电脑上没有chrome可供检查,但我在家里的电脑上使用chrome,它仍然显示我相信的相同代码。这真是令人惊讶。当我去查看页面源代码并找到
c1\u t2i
时。我没有得到任何结果。你能试着用类名
c3e8SH
检查一下你是否得到了任何对象吗?我忘了说我试着用
c3e8SH
替换
c1_t2i
来得到
containers=pagesoop.findAll(“div”,{“class”:“c3e8SH”})
,我也得到了0谢谢你,我会检查出来的。增加了另一个技巧。这可能会有所帮助。我在源代码页面中看到了
c1_t2i
c3e8SH
。每个项目都有自己的
c3e8SH
类。但是我认为包含所有项目的那一个是
c1\u t2i
?我在这台电脑上没有chrome可供检查,但我在家里的电脑上使用chrome,它仍然显示我相信的相同代码。这真是令人惊讶。当我去查看页面源代码并找到
c1\u t2i
时。我没有得到任何结果。你能试着用类名
c3e8SH
检查一下你是否得到了任何对象吗?我忘了说我试着用
c3e8SH
替换
c1_t2i
来得到
containers=pagesoop.findAll(“div”,{“class”:“c3e8SH”})
,我也得到了0谢谢你,我会检查出来的。增加了另一个技巧。这可能会有帮助。