使用beautifulsoup解析网页以获取动态内容

时间:2013-09-24 06:11:05

标签: python web-scraping beautifulsoup

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

页面源中没有类似歌曲的列表,但是当我在浏览器中使用“Inspect Element”时,它会出现。 我该怎么做?? 目前的代码:

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')

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

1 个答案:

答案 0 :(得分:0)

这可能是由一些ajax调用处理的,所以它不会在源代码中,

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

即。从此页面随机选择的请求网址:

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中模拟请求,在得到响应之后你必须解析响应以获得有趣的细节。