我有以下HTML Dom:
<div class="meta-info meta-info-wide"> <div class="title">Разработчик</div> <div class="content contains-text-link">
<a class="dev-link" href="http://www.jourist.com&sa=D&usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg" rel="nofollow" target="_blank">Перейти на веб-сайт</a>
<a class="dev-link" href="mailto:info@jourist.com" rel="nofollow" target="_blank">Написать: info@jourist.com</a>
<div class="content physical-address">Diagonalstraße 41
20537 Hamburg</div> </div> </div>
我需要在块dev-link
内获取所有类别div.meta-info-wide
的链接(网址)。
我尝试了这种显而易见的方法,但不起作用:
divTag = soup.find_all("div", {"class":"meta-info-wide"})
print(len(divTag))
for tag in divTag:
tdTags = tag.find_all("a", {"class":"dev-link"})
for tag in tdTags:
print tag.text
答案 0 :(得分:2)
尝试以下方法:
import bs4
html = """
<div class="meta-info meta-info-wide"> <div class="title">Разработчик</div> <div class="content contains-text-link">
<a class="dev-link" href="http://www.jourist.com&sa=D&usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg" rel="nofollow" target="_blank">Перейти на веб-сайт</a>
<a class="dev-link" href="mailto:info@jourist.com" rel="nofollow" target="_blank">Написать: info@jourist.com</a>
<div class="content physical-address">Diagonalstraße 4120537 Hamburg</div> </div> </div>"""
soup = bs4.BeautifulSoup(html, "html.parser")
for div in soup.find_all("div", {"class":"meta-info-wide"}):
for link in div.select("a.dev-link"):
print link['href']
这会给你:
http://www.jourist.com&sa=D&usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg
mailto:info@jourist.com
select()
用于返回具有类a
的所有dev-link
代码。当涉及两个或更多CSS类时,这是推荐使用的方法。
使用BeautifulSoup 4.5.1,Python 2.7.12
进行测试