0

我正在尝试解析以下页面 http://www.lyricsnmusic.com/roxy-music/while-my-heart-is-still-beating-lyrics/26925936以获取类似歌曲的列表。

页面源中不存在类似歌曲的列表,但当我在浏览器中使用“检查元素”时会出现。我该怎么做??当前代码:

url = 'http://www.lyricsnmusic.com/roxy-music/while-my-heart-is-still-beating-lyrics/26925936'
request = urllib2.Request(url)
lyricsPage = urllib2.urlopen(request).read()
soup = BeautifulSoup(lyricsPage)

生成链接的代码是:

for p in soup.find_all('p'):
    s = p.find('a', { "class" : 'title' }).get('href')

有哪些方法可以做到这一点?

4

1 回答 1

0

这可能由一些 ajax 调用处理,因此它不会在源代码中,

我认为您需要通过浏览器中的开发人员工具“监控网络”并查找您感兴趣的请求。

即从此页面中随机选择的请求 URL:

http://ws.audioscrobbler.com/2.0/?api_key=73581584905631c5fc15720f03b0b9c8&format=json&callback=jQuery1703329798618797213_1380004055342&method=track.getSimilar&limit=10&artist=roxy%20music&track=while%20my%20heart%20is%20still%20beating&_=1380004055943

要获取/查看响应,请在浏览器中输入上述 URL 并查看响应的内容。

因此您需要在 python 中模拟请求,并且在获得响应后,您必须解析响应以获取有趣的细节。

于 2013-09-24T06:45:01.450 回答