2016-01-22 95 views
0

之間的區別,我想從這個page報廢HREF。美麗的湯不能讓CSS類

有兩個類型的產品。那些突出顯示和那些沒有。我想要後者。 與這些產品關聯的CSS類不一樣。這就是我試圖使用它們的原因。

我只是想在這裏輸出li我感興趣的時刻。

from bs4 import BeautifulSoup 
import urllib.request 
from collections import * 
from statistics import mean 

list_url=[] 

url = 'http://m.zooplus.co.uk/shop/pet_food/royal_canin_food/rc_size_dog' 
response = urllib.request.urlopen(url) 
html = response.read() 
soup = BeautifulSoup(html,"html.parser") 

product_list = soup.find_all("li", {"class":"list-item"}) 
for elem in product_list: 
    print("////////////////BEGIN//////////") 
    print(elem) 
    print("///////////////END/////////////") 

輸出:

<li class="list-item highlighted"> 

這就是一種產品,我不想。

而且還有:

<li class="list-item "> 

這就是我想要的產品。

有美麗的湯在<li class="list-item "><li class="list-item highlighted">相同的外觀?

我錯過了什麼?

編輯瑜伽:

from bs4 import BeautifulSoup 
import urllib.request 
from collections import * 
from statistics import mean 

list_url=[] 

url = 'http://m.zooplus.co.uk/shop/pet_food/royal_canin_food/rc_size_dog' 
response = urllib.request.urlopen(url) 
html = response.read() 
soup = BeautifulSoup(html,"html.parser") 
product_list = soup.find_all("li", {"class":"list-item","id": lambda L: L !="special"}) 
for elem in product_list: 
    print("////////////////BEGIN//////////") 
    print(elem) 
    print("///////////////END/////////////") 
+0

類列表項查找所有元素與該類,即使他們也有其他班級... –

+0

我真的不明白。對我來說,'class =「突出顯示的」'和'class =「列表項'」顯然是兩個不同的類。 – BoobaGump

+1

'class' _attributes_可能會有所不同,但是這兩個元素都有class'list-item'。對不起,但那只是它。 「突出顯示的項目」不是***班級,它是2個班級的集合。 –

回答

1

按我的理解,這就是你的意思是: Highlighted/Not Highlighted

這工作:

from bs4 import BeautifulSoup 
import urllib.request 
from collections import * 
from statistics import mean 
import time 
import re 



list_url=[] 

url = 'http://m.zooplus.co.uk/shop/pet_food/royal_canin_food/rc_size_dog' 
response = urllib.request.urlopen(url) 
html = response.read() 
soup = BeautifulSoup(html,"html.parser") 
rows = soup.find_all('li',{'class':re.compile('list-item.*')}) 


for row in rows: 
    cls=row.attrs.get("class") 
    if not ("highlighted" in cls): 
     print(row.text)