2017-10-04 84 views
1

我對無序列表中的列表項的類屬性感到困惑。HTML元素問題的類屬性

Developer tools view

我提到我寫一個Python程序從一個網站,它的目標的UL列表裏面的li元素抓取。 ul中有45個li元素,其中17個沒有分配給它們的「class」屬性。這是ul的一部分。

ul view

我定製的目標選擇是「ul.vacanciesList禮」,我只得到了17對那些不具備「類」的關鍵字。

我的問題是,什麼是在li元素的標記中出現的「class」關鍵字,以及如何定位它們(​​li-s)以便獲得它們中的全部45個,而不是沒有類。

定製代碼:

'title' => ['selector' => 'h3'], 
      'containerSelector' => 'ul.vacanciesList li', 
      'detailSelector' => '#bigbox', 
      'location' => ['selector' => 'div.place'], 

謝謝。

+1

「我提到我寫一個Python程序從一個網站,它的目標的UL列表裏面的li元素抓取」,請把你的代碼 – samAlvin

+0

做到了,但代碼定製,無疑看到了選擇會有很大的幫助。基本上,我只是想了解「class」關鍵字代表什麼,以及如何在選擇器中正確定位它。謝謝。 –

回答

1

空屬性(無值的屬性)有效。 <tag class=""><tag class>只是表示元素屬於類別""。閱讀answer瞭解更多詳情。

要查找列表項:

soup = bs4.BeautifulSoup(page, 'lxml') 
litems = soup.findAll('li', {'class' : ''}) 

或者,你可以找到ul標籤,裏面確實有分配給它的class屬性值,並從那裏得到的所有listitems

soup = bs4.BeautifulSoup(page, 'lxml') 

# get the unordered list of interest 
unordered_list = soup.finqd('ul', {'class' : 'article vacanciesList'}) 
# extract all the list items from them 
list_items = unordered_list.findAll('li') 

print(list_items)