我正在尝试使用 BeautifulSoup 抓取网站的价格:容器类如下所示:我想从该类中检索的对象示例如下所示:但我不知道为什么在包含类下找不到对象c1_t2i。它总是在print(len(containers))代码如下所示:import bs4from urllib.request import urlopen as uReqfrom bs4 import BeautifulSoup as soupmyUrl = "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 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
如果打开页面,并查看页面源代码。您将无法找到类“ c1_t2i
”。您正在寻找的课程似乎是“ c3e8SH
”。
但是,我不确定为什么会发生这种情况。我正在使用铬。您可以使用 chrome 并检查一下吗?您还可以打印出已解析的 HTML,然后搜索文本“ c1_t2i
”或“ c3e8SH
”,以其中可用的为准。
编辑 1:
我想我明白这个问题了。您在检查元素时看到的 HTML 是使用 Javascript 生成的。但是,使用脚本获得的原始 html 中没有相同的类。您需要使用 PhantomJS 之类的东西来执行 JS 并获取生成的 HTML。看看这个线程。
编辑2:
也可以尝试禁用JS,看一下出现的页面,然后看看是否可以从基本的HTML中选择一个类名。
添加回答
举报
0/150
提交
取消