2017-04-25 11 views
0
  1. '치료'패키지를 사용하여 웹 사이트 (IMDB)의 이미지로 일부 데이터를 가져 오려고합니다.Python의 치료 패키지를 사용하여 데이터 크롤링

  2. div 클래스에 image_URL이 있으면 영화 포스터로 데이터를 크롤링 할 수 있습니다. 그러나 그렇지 않으면 내 코드가 제대로 작동하지 않습니다. 이미지와 연관된 일부 데이터를 생략했습니다.

  3. image_URL처럼 수정하고 이미지를 잊어 버리고 데이터를 크롤링하고 싶습니다.

  4. 어떻게 부품을 수정해야합니까?

데프 분석 (자동 응답) :

//some other lines 

try: 
     poster_image_url = 
     response.xpath('//div[@class="poster"]/a/img/@src').extract()[0] 
     poster_image_url = [ poster_image_url.split("_V1_")[0] + "_V1_.jpg" ] 

except: 
     poster_image_url = None 
     item['image_urls'] = poster_image_url 

이것은 파이프 라인의 코드 ↓↓↓↓

클래스 ImdbPipeline (객체) :

def process_item(self, item, spider): 
    return item 

def get_media_requests(self, item, info): 
    for image_url in item['image_urls']: 
     yield scrapy.Request(image_url) 

답변

0

당신은 사용할 수 있습니다 확인이있는 extract_first() 확인 :

poster_image_url = response.xpath('//div[@class="poster"]/a/img/@src').extract_first() 
if poster_image_url: 
    item['image_urls'] = poster_image_url.split('_V1')[0] + '_V1_.jgp' 

또는 치료 ItemLoader's을 사용할 수 있습니다.