2016-01-22 94 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)