В тех случаях, когда элементы страницы, которые вы пытаетесь обработать с помощью Beautiful Soup, не имеют классов или идентификаторов, может быть трудно сказать find()
методу, что вы пытаетесь найти.
В этом случае я предпочитаю использовать либо select()
, либо select_one()
, которые задокументированы здесь . Эти методы позволяют передавать селектор CSS - тот самый синтаксис, который вы используете, чтобы указать веб-браузеру, какие элементы вы хотите стилизовать определенным образом.
Вы можете найти ссылку на доступные селекторы. вам здесь . Я не могу дать вам точное CSS выражение, которое вам понадобится для вашего случая, потому что вы не предоставили образец HTML, который вы пытаетесь очистить, но это должно помочь вам начать.
Например, если страница, которую вы пытаетесь очистить, выглядела так:
<div id="contact">
<div>
<a href="ListingDetails_Level1_SITELINK">Some title</a>
</div>
<div>
<p>1, Sesame St., Address...... </p>
</div>
</div>
Затем, чтобы получить адрес, вы можете использовать селектор CSS, например, так:
address = soup.select_one("#contact > div:nth-child(2) > p")
Выше сказано, что адрес будет найден, если сразу посмотреть во втором элементе div внутри элемента с идентификатором «contact», а затем сразу же посмотреть в этом абзаце.