【发布时间】:2020-02-17 14:59:36
【问题描述】:
我遇到了一个(可能非常简单的)问题。
我正在使用 python、chrome web 驱动程序和 selenium 抓取网站。
所以我可以找到包含信息的 div 类,但我无法提取其中的文本。
以下是我正在使用的代码:
html = driver.page_source
print(html)
soup = bs4(html, "lxml")
#find infos
div = soup.find_all('div', class_="order-line-prod-material ng-binding")
div
然后输出是:
[<div class="order-line-prod-material ng-binding">AQ4174-010</div>,
<div class="order-line-prod-material ng-binding">AQ4176-010</div>,
<div class="order-line-prod-material ng-binding">AT7899-010</div>,
<div class="order-line-prod-material ng-binding">AT7900-010</div>,
<div class="order-line-prod-material ng-binding">AT7975-010</div>,
<div class="order-line-prod-material ng-binding">AT8120-010</div>,
<div class="order-line-prod-material ng-binding">AT8153-010</div>]
当我尝试使用时:
div.text
我得到的错误信息如下:
ResultSet 对象没有“文本”属性。您可能将项目列表视为单个项目。当你打算调用 find() 时,你调用了 find_all() 吗?
所以我知道我必须使用 for 循环,但我在网上找到的示例通常是这样的:
for a in div.find_all('a'):
print(a.text)
我不明白的是我在 div 类中没有 a 标签,所以我必须迭代什么才能得到我想要的文本?
非常感谢您的帮助。
祝你有美好的一天
【问题讨论】:
-
在 python 中,缩进很重要...请修复代码中的缩进。
标签: python selenium beautifulsoup