красивые ошибки разбора данных div супа - PullRequest
0 голосов
/ 09 февраля 2019

Пример кода:

<div class="sort-line selected"  
data-discount="3392" 
data-count="669" 
data-ship_price="0"
>

Я хочу разобрать "669" по bs4, но есть ошибка: объект NoneType не вызывается.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 09 февраля 2019

Сначала вы должны изолировать тег, затем вы можете рассматривать его как словарь, чтобы получить требуемое значение атрибута. Прочтите документацию , чтобы узнать больше об этом.

html="""
<div class="sort-line selected"
data-discount="3392"
data-count="669"
data-ship_price="0">
</div>
"""
from bs4 import BeautifulSoup
soup=BeautifulSoup(html,'html.parser')
div=soup.find('div')
print(div['data-count'])

Вывод:

669

Если есть много делений, вы должны включить больше фильтров изолировать див.Например:

div=soup.find('div',class_="sort-line selected")

С вашим URL

import requests
from bs4 import BeautifulSoup
r=requests.get('https://pandao.ru/product/b89db09a-d978-437c-be37-a0c2ceffc315?d=1de543b5-527e-44e4-9888-d880d1a3c331&pid=7a9bf860-bcc7-41ea-a03f-c6bcd3e2b8f5')
soup=BeautifulSoup(r.text,'html.parser')
div=soup.find('div',class_="sort-line selected")
print(div['data-count'])

Вывод:

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