我陷入了一个(可能非常简单的)问题。
我正在使用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类中没有标签,所以我必须遍历什么才能得到想要的文本?
非常感谢您的帮助。
祝你有美好的一天
答案 0 :(得分:1)
如果find.all返回多个值,则应将其视为列表。 这应该打印每个div中的文本。
#find infos
divs = soup.find_all('div', class_="order-line-prod-material ng-binding")
for div in divs:
print(div.text)