2017-02-11 55 views
2

有沒有什麼辦法可以爲beautifulsoup的select方法提供多個參數?通過beautifulsoup css選擇器獲取多個標籤

我正在通過soup.select('div[class^="TypeA"]'檢索數據。這讓我把所有的div都匹配到模式TypeA。我有興趣檢索,另外,另一個div class="TypeB"(完全匹配)。

現在我可以在兩個單獨的通行證中做到這一點,例如,像這樣:

r = requests.get(jurl) 
soup = BeautifulSoup(r.text,"lxml") 
list1 = [] 
#get typeA divs 
for div in soup.select('div[class^="TypeA"]'): 
    t = [text for text in div.stripped_strings] 
    list1.append(t) 
list2 = [] 
#get typeB divs 
for div in soup.select('div[class^="TypeB"]'): 
    t = [text for text in div.stripped_strings] 
    list2.append(t) 
#combine the two into tuples. Both lists are of the same size 
list3 = [] 
count = 0 
for item in list1: 
    list3.append((item,list2[count])) 
    count += 1  
print list3 

但是有可能做到一次?通過documentation,如何做到這一點並不明顯。

+0

你可以用'zip'功能'爲DIV1,拉鍊DIV2(soup.select('DIV [^類=「TypeA」]'),soup.select('div [class^=「TypeB」]')):' – Arman

回答

2
soup.select('div[class^="TypeA"], div[class^="TypeB"]') 

使用,使用多個選擇

CSS Selector Reference

enter image description here

+0

這是什麼?爲什麼兩個'typeA'類? – Arman

+0

再次感謝宏傑李! –