2015-01-07 1 views
0

통과 :BeautifulSoup로 나는이 페이지를 전달하고자 사업부

import urllib2 
from BeautifulSoup import BeautifulSoup 

page = urllib2.urlopen('http://animedigitalnetwork.fr/video/naruto-shippuden') 
soup = BeautifulSoup(page) 
first_div = soup.find('div',{"class" : "adn-video"}) 

결과가 나루토되지 않습니다

http://animedigitalnetwork.fr/video/naruto-shippuden

내가이 테스트!? 여기

<div class="adn-video"> <div class="adn-video_screenshot"> 
<img src="http://image.animedigitalnetwork.fr/license/claymore/tv/web/eps1_328x184.jpg" alt="Claymore 1" /><span class="adn_video_play-button"></span> </div><div class="adn-video_text"><div class="adn-video_title"> 
<h4>Claymore</h4><span>Épisode 1</span><div class="adn-rating mobile-hide" itemprop="aggregateRating" itemscope="itemscope" itemtype="http://schema.org/AggregateRating"><meta itemprop="ratingValue" content="4.6667" /><meta itemprop="ratingCount" content="10" /><div id="adn-rating"><ul class="adn-rating_empty"><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li></ul><ul class="adn-rating_rating"><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li><li>&#xe002;</li></ul></div><p class="adn-rating-message"></p></div></div><div class="adn-video_link"> 
<a title="Claymore 1" href="/video/claymore/1849-episode-1-la-claymore">Voir la vidéo</a> 
</div></div></div> 

답변

0

여러 문제 :

  • 은 먼저 초기 페이지
  • 에서 playlist 매개 변수 값을 추출해야합니다 동영상 목록을 형성에 관여 추가 비동기 호출이

    • 다음으로 동영상을 가져 오도록 게시물 요청을하십시오. this url
    당신이 outdated and not maintained version BeautifulSoup의 사용
  • - 스위치를 bs4에 :

    pip install beautifulsoup4 
    
  • 사용 requests 대신 urllib2의하는 session을 유지하고 요청 헤더를 통과

전체 작업 코드 :

from bs4 import BeautifulSoup 
import requests 

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} 

# initialize session 
session = requests.Session() 

# getting playlist 
response = session.get('http://animedigitalnetwork.fr/video/naruto-shippuden', headers=headers) 
soup = BeautifulSoup(response.content) 
playlist = soup.find('a', {'data-playlist': True})['data-playlist'] 

# getting list of videos 
url = 'http://animedigitalnetwork.fr/index.php?option=com_vodvideo&view=playlist&format=raw' 
response = session.post(url, data={ 
    'playlist': playlist, 
    'season': '', 
    'order': 'DESC' 
}, headers=headers) 

soup = BeautifulSoup(response.content) 
for video in soup.select('div.adn-video'): 
    print video.a.get('title') 

인쇄물 (비디오 제목 목록) :

Naruto Shippuden 391 
Naruto Shippuden 390 
Naruto Shippuden 389 
... 
Naruto Shippuden 3 
Naruto Shippuden 2 
Naruto Shippuden 1 
+0

ty men :) 작동합니다. – parcal