2017-10-29 113 views
1

我正在尝试做一个循环获取列表中的元素。这是列表中的元素(这个问题每个元素的一部分是,我知道如何选择produto - 诺姆,produto-PRECO,categoriaēsubcategoria的元素。如何获取此标签的元素?

<div categoria="Carnes" class="panel-product" produto-fabricante="" produto-nome="Contra Filé Maturada FRIBOI Resfriado Pedaço 1,1kg" produto-preco="45.09" produto-qtd="1" produto-sku="0028363" ruptura="Verdadeiro" subcategoria="Carne bovina"> 

我使用Python包Selenium所以,从html页面提取这个列表我使用:soup.find_all("div", "panel-product"),但在此之后,我不知道如何从上面描述的信息中选择元素。谢谢!

回答

0

默认情况下,soup.find_all应提供包含每个元素的对象数组,因此可以使用

data = soup.find_all("div", "panel-product") 
for d in data: 
    produtofabricante = d.attrs['produto-fabricante'] 
    # do what you need here 

Check Soap documentation for .attrs

+0

谢谢!这正是我需要的,我通过2天试图解决这个问题。再次感谢。 – chpb007

0

当你想使用Selenium,你不需要BeautifulSoup。初始化硒司机并获得HTML,然后使用:

c = driver.find_elements_by_class_name("panel-product") 

然后得到的属性在这个类:

print(c.get_attribute('produto-nome')) 
+0

我认为这是对的,但是当我使用此代码时: 'AttributeError:'list'对象没有属性'get_attribute'' 我收到此错误。 – chpb007

+0

我错过了关闭打印。看看编辑并让我知道 – skrubber