Как разобрать все переменные подсчета данных на руке - PullRequest
2 голосов
/ 31 марта 2019

Я хочу найти переменную 'data-count-on-hand =' в этой части кода, но ответ отсутствует.

size_container = soup.find("ul",{"class":"styled-radio"})
stock2 = size_container.find_all("li")
stock = stock2["li"].split("data-count-on-hand")[1]

это то, что я пробовал, это HTML, который мне нужен для супа:

<ul class="styled-radio">
<li>
<input type="radio" name="variant_id" id="variant_id_112240" value="112240" class="js-change-quantity" data-options-threshold="5">
<label for="variant_id_112240">XS</label>
</li>
<li>
<input type="radio" name="variant_id" id="variant_id_112238" value="112238" class="js-change-quantity" data-count-on-hand="96" data-options-threshold="5">
<label for="variant_id_112238">S</label>
</li>
<li>
<input type="radio" name="variant_id" id="variant_id_112237" value="112237" class="js-change-quantity" data-count-on-hand="8" data-options-threshold="5">
<label for="variant_id_112237">M</label>
</li>
<li>
<input type="radio" name="variant_id" id="variant_id_112241" value="112241" class="js-change-quantity" data-count-on-hand="18" data-options-threshold="5">
<label for="variant_id_112241">XXL</label>
</li>
</ul>

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Попробуйте использовать несколько различных селекторов, поскольку вы можете просто использовать селектор атрибутов, например, без класса [data-count-on-hand].Класс with равен .js-change-quantity[data-count-on-hand]

stocks = [item['data-count-on-hand'] for item in soup.select('.js-change-quantity[data-count-on-hand]')]

Как и в предыдущем ответе, если вы хотите использовать селектор типа input для тега input, измените селектор на:

soup.select('input[data-count-on-hand]')
1 голос
/ 31 марта 2019

Вы можете получить теги input, имеющие атрибут data-count-on-hand. Каждый тег можно рассматривать как словарь пар атрибут-значение.

for input in soup.find_all('input',attrs={'data-count-on-hand':True}):
    print(input['data-count-on-hand'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...