-1

我正在尝试解析网页以仅获取第一个 mp3 链接。我将解析的 html 将如下所示(在网页中):

<a href="#" playlist="http://dn-naverdic.ktics.co.kr/naverdic/f759cdac78d6e201e5dfd928acc70e2a/4ffec2f7/naverdic/endic/sound/clear/us/007/007582.mp3" class="play3 N=a:wrd.listencom,r:3,i:85c05904f36749e6aa9f6fd3f461f63c">

我已经尝试使用“a”作为参数的 find_all 函数,并尝试让它找到“播放列表”,但我无法让它工作。

该代码是我在网上找到的另一个修改程序的一部分(很多代码行),但是我试图为漂亮的汤做的部分在所有尝试中都失败了,所以我真的没有示例可以发布,因为它们都没有工作,我不断收到错误。

4

2 回答 2

0

我正在使用的当前机器上没有 BeautifulSoup,但这里有一些使用lxml的示例代码。也许你可以告诉我们你正在使用什么代码?

from lxml.html import etree
from lxml.html import HTMLParser
from cStringIO import StringIO
soup = """<body><a href="#" playlist="http://dn-naverdic.ktics.co.kr/naverdic/f759cdac78d6e201e5dfd928acc70e2a/4ffec2f7/naverdic/endic/sound/clear/us/007/007582.mp3" class="play3 N=a:wrd.listencom,r:3,i:85c05904f36749e6aa9f6fd3f461f63c"></body>"""
root = etree.parse(StringIO(soup),HTMLParser())
root.xpath('//a')
# Will return: [<Element a at 0x30840a0>]
于 2012-07-12T13:37:25.103 回答
0

有很多方法可以做到(可能太多了。)这可能会帮助您入门:

>>> import urllib2
>>> from bs4 import BeautifulSoup
>>> 
>>> url = 'http://endic.naver.com/search.nhn?isOnlyViewEE=N&query=Rule'
>>> page = urllib2.urlopen(url)
>>> soup = BeautifulSoup(page)
>>> 
>>> playlists = soup.find_all("a", {"playlist": True})
>>> playlists
[<a class="play3 N=a:wrd.listencom,r:3,i:85c05904f36749e6aa9f6fd3f461f63c" href="#" playlist="http://dn-naverdic.ktics.co.kr/naverdic/e883ec39de5d45840c2744705c2918c7/4ffee8ca/naverdic/endic/sound/clear/us/007/007582.mp3">
<img alt="play" class="play" height="18" src="http://dicimg.naver.com/endic/img/play.gif" width="19"/>
</a>, <a class="play3 N=a:wrd.listenuk,r:3,i:85c05904f36749e6aa9f6fd3f461f63c" href="#" playlist="http://dn-naverdic.ktics.co.kr/naverdic/7001326345aadc53fa3911f9083065d7/4ffee8ca/naverdic/endic/sound/uk/0990000/0992050.mp3">
<img alt="play" class="play" height="18" src="http://dicimg.naver.com/endic/img/play.gif" width="19"/>
</a>]
>>> 
>>> playlists[0].get("playlist")
'http://dn-naverdic.ktics.co.kr/naverdic/e883ec39de5d45840c2744705c2918c7/4ffee8ca/naverdic/endic/sound/clear/us/007/007582.mp3'
于 2012-07-12T15:10:44.423 回答