Как скрести всегде все ID имеет разное значение? - PullRequest
0 голосов
/ 20 октября 2018

Поэтому я несколько часов пытался распечатать все <li id =List-commodity>, где каждый li содержит свои собственные данные.

HTML:

enter image description here

Я начал с распечатки

li_tags = bs4.find_all('ul', {'id': 'commodity-lister-list'})

, что дает мне весь список, который в порядке.После этого я попытался

different_ids = li_tags.find_all('li')

print(different_ids)

, но это дает мне пустое значение ([]).

Что я делаю не так и как я могу распечатать все для себя, как позже смогу применить его в цикле for?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Использование select:

li_tags = bs4.select('ul[id=commodity-lister-list] li[id^=list-commodity-]')
0 голосов
/ 20 октября 2018

Вы можете использовать re.compile для сопоставления цифр, которые встречаются в id:

import re
li_tags = bs4.find('ul', {'id': 'commodity-lister-list'}).find_all('li', {'id':re.compile('list\-commodity-\d+')})

Обратите внимание, что HTML id s уникальны, поэтому вы можете использовать bs4.find и неbs4.find_all.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...