Я написал скрипт на python в сочетании с BeautifulSoup
, чтобы очистить addresses
от некоторых html elements
. addresses
разделены тегами br
, поэтому я не могу получить их все, используя next_sibling
. Я пытался с двумя разными подходами, чтобы достичь их. Тем не менее, последний немного близко. Я все еще не уверен относительно того, каким должен быть эффективный подход, чтобы получить addresses
, как я указал ниже в моем ожидаемом результате. Заранее спасибо.
Elements
, в пределах которого лежит addresses
:
<div class="item-listing">
<h4><a href="/alps/" target="_blank">AK</a></h4>
5200 A St Ste 102<br>
Anchorage, AK 99518<br>
Phone: (907) 563-9333
<br>
<ul class="list-items" style="margin-top: 5px;">
<li style="padding: 3px; background: #efefef; border-radius: 4px;"><img src="/images/icon-rec.png" style="height: 24px; width: 24px;" alt="Rl" data-toggle="tooltip" data-placement="top" title="Sales"></li>
</ul>
<a style="margin-right: 10px;" href="http://www.alps.com/?" target="_blank">Website</a>
<a href="/al/anchorage/" target="_blank">Profile</a>
</div>
Что я пробовал до сих пор:
soup = BeautifulSoup(content,"lxml") #here content holding the elements above
for items in soup.select(".item-listing"):
addr = [item.next_sibling for item in items.select("h4")]
# addr = [item.string for item in items.select_one("h4").next_siblings if not item.name=="a"]
print(addr)
Результат первого addr
(из сценария):
['\n 5200 A St Ste 102']
Результат закомментирован addr
:
['\n 5200 A St Ste 102', None, '\n Anchorage, AK 99518', None, '\n \n Phone: (907) 563-9333\n ', None, '\n', None, '\n', '\n', '\n']
Мой ожидаемый результат (или очень близко к этому):
5200 A St Ste 102 Anchorage, AK 99518 Phone: (907) 563-9333