Python beatutiful汤'ResultSet'对象没有属性'get'

时间:2014-03-20 11:18:05

标签: python beautifulsoup

我试图抓住网站上的一些链接,并在他们被清理后将其写入文件。网站上的链接如下所示:

<a href="javascript:changeChannel('http://dr01-lh.akamaihd.net/i/dr01_0@147054/index_1700_av-b.m3u8', 20);">DR1</a><br>
<a href="javascript:changeChannel('http://dr02-lh.akamaihd.net/i/dr02_0@147055/index_1700_av-b.m3u8', 21);">DR2</a><br>
<a href="javascript:changeChannel('http://dr03-lh.akamaihd.net/i/dr03_0@147056/index_1700_av-b.m3u8', 701);">DR3</a><br>
<a href="javascript:changeChannel('http://dr06-lh.akamaihd.net/i/dr06_0@147059/index_1700_av-b.m3u8', 31);">DR Ultra</a><br>
<a href="javascript:changeChannel('http://dr04-lh.akamaihd.net/i/dr04_0@147057/index_1700_av-b.m3u8', 38);">DR K</a><br>
<a href="javascript:changeChannel('http://dr05-lh.akamaihd.net/i/dr05_0@147058/index_1700_av-b.m3u8', 50);">DR Ramasjang</a><br>

我可以用它来抓住它们:

links = soup.findAll(href=re.compile("javascript"))

给我这个输出:

[<a href="javascript:changeChannel('http://dr01-lh.akamaihd.net/i/dr01_0@147054/index_1700_av-b.m3u8', 20);">DR1</a>, <a href="javascript:changeChannel('http://dr02-lh.akamaihd.net/i/dr02_0@147055/index_1700_av-b.m3u8', 21);">DR2</a>, <a href="javascript:changeChannel('http://dr03-lh.akamaihd.net/i/dr03_0@147056/index_1700_av-b.m3u8', 701);">DR3</a>, <a href="javascript:changeChannel('http://dr06-lh.akamaihd.net/i/dr06_0@147059/index_1700_av-b.m3u8', 31);">DR Ultra</a>, <a href="javascript:changeChannel('http://dr04-lh.akamaihd.net/i/dr04_0@147057/index_1700_av-b.m3u8', 38);">DR K</a>, <a href="javascript:changeChannel('http://dr05-lh.akamaihd.net/i/dr05_0@147058/index_1700_av-b.m3u8', 50);">DR Ramasjang</a>]

现在我想要清理它,所以我只得到&#39;&#39;之间的http://部分。这就是它变坏的地方。

我已经尝试了

fullink = links.get('href')

我收到错误:

'ResultSet' object has no attribute 'get'

那么如何从中获取链接?

1 个答案:

答案 0 :(得分:5)

Beautiful Soup documentation说:

  

AttributeError:'ResultSet'对象没有属性'foo' - 这个   通常会发生因为您希望find_all()返回单个标记   或字符串。但是find_all()返回标签和字符串-a的列表   ResultSet对象。你需要迭代列表并查看   每个人的.foo。或者,如果您真的只想要一个结果,那么您需要   使用find()而不是find_all()。

所以你可能想要full_links = [x.get("href") for x in links]