Я новичок в веб-скриптинге, HTML, Javascript и CSS, поэтому я не уверен, какую именно информацию мне не хватает, чтобы решить мою проблему.Я использую красивый суп, чтобы очистить некоторые веб-страницы, где у меня есть открытая веб-страница, чтобы я мог точно видеть, куда и какие данные извлекать, используя функцию красивого супа, soup.find ().Я получил несколько вызовов sou.find () на работу, но приведенные ниже не вернули NONE, и я хотел бы уточнить, почему это так.
Есть ли что-то, чего я не понимаю в HTML или использовании Beautifulsoup?
Я посмотрел документацию по красивым супам, в которой отсылал меня к
soup.find(name,{"attributeName":"attribute", ... "attributeName4":"attribute4"}, recursive=True, text=None)
Насколько я понимаю,
"name"="tag" (in purple), and "attributeName"="attribute" (in orange).
Я уже протестировал приведенный ниже код, и он возвращает NONE.
Я добавил следующий фрагмент кода, используя селен:
element = driver.find_element_by_css_selector('div.cp_ratings.rated')
Ниже приведен фрагмент кода, который я пытаюсь очистить, и соответствующие неудачные строки кода, которые вернули NONE:
<div class="cp_ratings rated" data-rating_value="8" data-js="ratings" data-read_only="true" data-bib_id="95103005" data-inline_messaging="true" testid="widget_averagerating">
<div class="rating_wrapper rating_large rating_average" data-js="rating-wrapper">
<div class=" rating_icons" data-js="rating-icons" style="width: 80%;">
</div>
</div>
</div>
Чтобы получить значение = 8 из "data-rating_value", я попыталсяследующие фрагменты кода:
(1) item = soup.find("span",{"class":"cp_ratings rated"})
(2) item = soup.find("div",{"class":"cp_ratings rated"})
(и как указано в этом вопросе о переполнении стека): Понятьфункция Find () в Beautiful Soup
(3) item = soup.find("span",{"class":"cp_ratings.rated","data-rating_value":True,"data-js":"ratings","data-read_only":"false","data-bib_id":"1143905005","data-inline_messaging":"false","testid":"widget_rating"})
(4) item = soup.find("span",{"class":"cp_ratings rated","data-rating_value":True,"data-js":"ratings","data-read_only":"false","data-bib_id":"1143905005","data-inline_messaging":"false","testid":"widget_rating"})
Я ожидал получить data-rating_value
иvalue=0
в коде выше, но вместо этого я получил NONE.Насколько я понимаю, вы должны поместить все атрибуты в тег, чтобы найти результат, но в этом случае этого не происходит.
Ссылка на веб-страницу: https://epl.bibliocommons.com/item/show/1142125005?active_tab=bib_info#