2012-05-19 66 views
0

此代碼:Webscraper不會重複

from bs4 import BeautifulSoup 
from urllib2 import urlopen 

f = urlopen("http://www.groupon.co.uk/").read() 

bs = BeautifulSoup(f) 

for tag in bs.find_all('ul', {'id': 'jCitiesSelectBox'}): 
    print tag.li['onclick'] 

只打印出第一個標籤,不打印出jCitiesSelectBox所有標籤,我不明白爲什麼。

回答

0

你可能有選擇器倒退。每個文檔只允許一個標籤具有特定的id。你指定的是「只有在<ul>標籤中才能找到標籤id="jCitiesSelectBox」。

編輯:

你可能想要的是找到所有<li>標籤,在標籤內有id="jCitiesSelectBox",是這樣的:

cities_list = bs.find('ul', {'id': 'jCitiesSelectBox'}) 
for tag in cities_list.find_all('li'): 
    print tag['onclick'] 

(未測試)

+0

不返回任何內容。基本上jCitiesSelectBox是div的id,其中有我想要刮的整個列表 –

0
#!/usr/bin/python 
# -*- coding: utf-8 -*- 
from bs4 import BeautifulSoup 
from urllib2 import urlopen 

f = urlopen("http://www.groupon.co.uk/").read() 

bs = BeautifulSoup(f) 

f = urlopen("http://www.groupon.co.uk/").read() 

bs = soup(f) 

tags = bs.findAll('ul', attrs={'id' : 'jCitiesSelectBox'}) 
for tag in tags: 
    lip = tag.findAll('li') 
    for li in lip: 
     print li['onclick'] 

測試,爲我工作。