-1

私は最初のmp3リンクのみを取得するためにウェブページを解析しようとしています。解析するhtmlは次のようになります(Webページ内):

<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関数を試し、'playlist'を見つけようとしましたが、機能させることができませんでした。

コードは私がオンラインで見つけた別の変更されたプログラムの一部です(コードの行がたくさんあります)が、美しいスープのために私がしようとしている部分はすべての試みで失敗したので、それらのどれもないので実際に投稿するサンプルはありません動作し、エラーが発生し続けました。

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 に答える