Впервые в Webscraping, и пытается разобрать html http://www.airportcodes.org и получить коды аэропортов вместе с названием города и штата в кадре данных. HTML выглядит следующим образом. По сути, кажется, что после каждого тега 'div class = "t6" строки элементов (город, штат и код аэропорта), которые мне нужно проанализировать, перечислены там с тегом разрыва, но, поскольку они разбиты по алфавиту, количество элементовв каждом разделе отличается.
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td bgcolor="#CBC7E0"><img height="2" src="img/0.gif" width="1"/></td></tr>
</table></div>
<a name="USA"></a>
<div class="t6"><div class="major"><b>A</b></div></div>
Aberdeen, SD (ABR) <br/>
Abilene, TX (ABI)<br/>
Adak Island, AK (ADK)<br/>
Akiachak, AK (KKI)<br/>
Akiak, AK (AKI)<br/>
Akron/Canton, OH (CAK)<br/>
Akuton, AK (KQA)<br/>
Alakanuk, AK (AUK)<br/>
Alamogordo, NM (ALM)<br/>
...
<div class="sectionBreak">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td bgcolor="#CBC7E0"><img height="2" src="img/0.gif" width="1"/></td></tr>
</table></div>
<div align="right"><div align="right"><a href="#top">return to top</a></div></div>
<a name="USB"></a>
<div class="t6"><div class="major"><b>B</b></div></div>
Bakersfield, CA (BFL)<br/>
Baltimore, MD (BWI)<br/>
Bangor, ME (BGR)<br/>
Bar Harbour, ME (BHB)<br/>
...
Коды до сих пор:
import bs4 as bs
sauce = urllib.request.urlopen('http://www.airportcodes.org/').read()
soup = bs.BeautifulSoup(sauce, 'lxml')
for tag in soup.find_all("div", class_="t6"):
print(tag.next_sibling)
получает меня:
Aberdeen, SD (ABR)
Bakersfield, CA (BFL)
Canton/Akron, OH (CAK)
Но это не так, как выглядит кодвозвращает только первый элемент рядом с указанным тегом. Любая помощь будет оценена!