#python #web-scraping #beautifulsoup
Вопрос:
Это соответствующая часть html, которая очищается:
<div class="blockSpoiler-content">
<div class="contentSpoiler">
<div class="link-box" id="62H" style="background-color: rgb(65, 120, 50);">
<div class="status-box"><i class="working" title="Working"></i></div>
<a rel="external" href="https://url1.net.html" target="_blank">Link1</a>
</div>
<div class="link-box" id="IFA" style="background-color: rgb(65, 120, 50);">
<div class="status-box"><i class="working" title="Working"></i></div>
<a rel="external" href="https://url2.net.html" target="_blank">Link2</a>
</div>
<div class="link-box" id="ruG" style="background-color: rgb(65, 120, 50);">
<div class="status-box"><i class="working" title="Working"></i></div>
<a rel="external" href="https://url3.com.html" target="_blank">Link3</a>
</div>
<div class="link-box" id="Bdf" style="background-color: rgb(65, 120, 50);">
<div class="status-box"><i class="working" title="Working"></i></div>
<a rel="external" href="https://url4.com" target="_blank">Link4</a>
</div>
<div class="link-box" id="1Da" style="background-color: rgb(65, 120, 50);">
<div class="status-box"><i class="working" title="Working"></i></div>
<a rel="external" href="https://url5.net.html" target="_blank">Link5</a>
</div>
</div>
</div>
Я пытаюсь получить эти URL-адреса:
- https://url1.net.html
- https://url2.net.html
- https://url3.com.html
- https://url4.com
- https://url5.net.html
Я пробовал разные вещи, но дошел только до этого (локальный файл используется только для тестирования, перед очисткой веб-страниц).:
with open("mainLocalFile.html") as fp:
soup2 = BeautifulSoup(fp, 'html.parser')
links = soup2.find_all('div', class_='blockSpoiler-content')
# print(links)
for link in links:
print(link)
print(link.a) # prints only the first tag
print(link.a['href']) # prints only the first URL
Ответ №1:
Выберите все <a>
, которые находятся под тегом с классом blockSpoiler-content
(теперь вы выбираете только один <div class=blockSpoiler-content>
с .find_all
помощью метода).:
for a in soup.select(".blockSpoiler-content a"):
print(a["href"])
С принтами:
https://url1.net.html
https://url2.net.html
https://url3.com.html
https://url4.com
https://url5.net.html