python - 如何从内部提取链接:美汤
我正在尝试提取一个这样写的链接:
<h2 class="section-heading">
<a href="http://www.nytimes.com/pages/arts/index.html">Arts »</a>
</h2>
我的代码是:
问问题
3878 次
1 回答
3
首先,您要获取元素href
的a
,因此您应该a
不在n
该行上访问。其次,它应该是
a.get('href')
或者
a['href']
如果没有找到这样的属性,则后一种形式会抛出,而前者会返回None
,就像通常的字典/映射接口一样。作为.get
一个方法,它应该被称为(.get(...)
);索引/元素访问对它不起作用(.get[...]
),这就是这个问题的意义所在。
注意,这find
可能会失败,返回None
,也许你想迭代n.find_all('a', href=True)
:
for n in head_links:
for a in n.find_all('a', href=True):
print(a['href'])
比使用更简单的find_all
是使用select
采用 CSS 选择器的方法。在这里,我们只需一次操作,就可以像使用 JQuery 一样轻松地获取具有内部属性的那些<a>
元素。href
<h2 class="section-heading">
soup = BeautifulSoup(plain_text)
for a in soup.select('h2.section-heading a[href]'):
print(a['href'])
(另外,请在您编写的任何新代码中使用小写的方法名称)。
于 2016-02-12T06:15:48.480 回答
我正在尝试提取一个这样写的链接:
<h2 class="section-heading">
<a href="http://www.nytimes.com/pages/arts/index.html">Arts »</a>
</h2>
我的代码是:
问问题
3878 次
1 回答
3
首先,您要获取元素href
的a
,因此您应该a
不在n
该行上访问。其次,它应该是
a.get('href')
或者
a['href']
如果没有找到这样的属性,则后一种形式会抛出,而前者会返回None
,就像通常的字典/映射接口一样。作为.get
一个方法,它应该被称为(.get(...)
);索引/元素访问对它不起作用(.get[...]
),这就是这个问题的意义所在。
注意,这find
可能会失败,返回None
,也许你想迭代n.find_all('a', href=True)
:
for n in head_links:
for a in n.find_all('a', href=True):
print(a['href'])
比使用更简单的find_all
是使用select
采用 CSS 选择器的方法。在这里,我们只需一次操作,就可以像使用 JQuery 一样轻松地获取具有内部属性的那些<a>
元素。href
<h2 class="section-heading">
soup = BeautifulSoup(plain_text)
for a in soup.select('h2.section-heading a[href]'):
print(a['href'])
(另外,请在您编写的任何新代码中使用小写的方法名称)。
于 2016-02-12T06:15:48.480 回答