2013-09-24 1 views
0

비슷한 노래 목록을 보려면 http://www.lyricsnmusic.com/roxy-music/while-my-heart-is-still-beating-lyrics/26925936 페이지를 구문 분석하려고합니다.웹 사이트를 beautifulsoup로 구문 분석하여 동적 콘텐츠 받기

페이지 소스에는 유사한 노래 목록이 없지만 브라우저에서 '요소 검사'를 사용할 때 나타납니다. 어떻게해야합니까 ?? 현재 코드 :

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

?

+0

이 페이지는 [Last.fm API] (http://www.last.fm/api)를 사용하여 해당 데이터를로드합니다. –

+0

['application.js' 스크립트] (http://www.lyricsnmusic.com/javascripts/application.js)는 축소되지 않았으므로 읽으시 고 대신 동일한 API를 사용하는 방법을 배우십시오. 제 3 자 웹 사이트 스크랩하기. http://ws.audioscrobbler.com URL을 찾으십시오. –

답변

0

는 소스되지 않도록이 일부 아약스 호출에 의해 아마 처리,

난 당신이 브라우저의 개발자 도구를 통해 "모니터 네트워크"에 필요에 관심이 요청을 보일 것이다 생각합니다. 이 페이지에서 무작위로 고른 요청 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을 입력하고 응답의 내용을 볼 확인합니다.

그래서 파이썬으로 요청을 시뮬레이트해야하고 응답을 얻은 후에 흥미로운 세부 사항에 대한 응답을 구문 분석해야합니다.

+0

Windows에서 AJAX 호출을 리버스 엔지니어링하는 데 Fiddler [1]를 사용하는 것이 좋습니다. [1] : http://fiddler2.com/features –

+0

[web driver] (https : // code.google.com/p/selenium/)을 사용하여 실제 웹 브라우저를 제어하고 ajax 호출을 처리하도록합니다. – ogrim

+0

Lastfm에 API 호출을하고 유사한 노래 목록을 직접 가져 와서 원본 사이트에 URL을 작성할 수있었습니다. 모두에게 감사합니다 – kevgathuku

관련 문제