2017-10-29 112 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