这是HTML:
<div class="vl-article-title">
<h3>
<span style="font-size: 24px;">
<a href="http://www.15min.lt/naujiena/sportas/fifa-2014/desimt-pasaul…onato-debiutantu-kurie-atkreips-jusu-demesi-813-430673?cf=vl"></a>
</span>
</h3>
</div>
我只需要获得链接(a)但我不知道如何。有可能做这样的事情:
h3 = soup.select('div.vl-article-title > h3 > a')
答案 0 :(得分:1)
&gt; sign是直接后代选择器。它与A元素不匹配,因为它们之间存在跨度。
你应该可以这样做:
h3 = soup.select('div.vl-article-title > h3 > span > a')
或者,如果使用选择器稍微不那么具体可以:
h3 = soup.select('div.vl-article-title a')
匹配所有与div vl-article-title相同的div的元素。
修改强>
很抱歉,因为我使用了美味的汤,我错误地认为它适用于CSS选择器,但事实并非如此。
一种方法是:
a = soup.find("div", attrs={"class": "vl-article-title"}).find("h3").find("span").find("a")
答案 1 :(得分:0)
如果这是整个HTML,那么您只需执行以下操作:
soup = BeautifulSoup(html)
link = soup.find("a").attrs["href"] # this gives you the link as a string
如果页面中有多个<a>
标记,则可以将find("a")
替换为find_all("a")
,它将返回迭代器。
编辑,<a>
标记位于<h3>
标记内:
link = soup.find("h3").find("a").attrs["href"]