Есть ли способ предоставить несколько аргументов методу beautifulsoup select
?Извлечение нескольких тегов через beautifulsoup css selector
Я получаю данные через soup.select('div[class^="TypeA"]'
. Это выводит мне все divs, где классы соответствуют шаблону 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, не сразу видно, как это можно сделать.
Вы можете использовать '' zip' функцию для див1, div2 в ZIP (soup.select ('DIV [класс^= "TypeA"] '), soup.select (' div [class^= "TypeB"] ')): ' – Arman