2014-12-17 25 views
9

tôi sử dụng try except để tránh lỗi, nhưng thiết bị đầu cuối của tôi vẫn hiển thị lỗi nhưng không được thông báo đăng nhập:scrapy lỗi: exceptions.ValueError: Thiếu lược đồ trong yêu cầu url:

raise ValueError('Missing scheme in request url: %s' % self._url) 
exceptions.ValueError: Missing scheme in request url: 

Làm thế nào tôi có thể tránh được lỗi này khi scrapy không nhận được image_urls?
Vui lòng hướng dẫn tôi, cảm ơn bạn rất nhiều.

try: 

     item['image_urls'] = ["".join(image.extract()) ]  
    except: 
     log.msg("no image foung!. url={}".format(response.url),level=log.INFO) 

Trả lời

15

trường image_urls phải là danh sách, chứ không phải là danh sách.

item['image_urls'] = image.extract() 

Nếu bạn làm như vậy và vẫn tăng ngoại lệ, có vẻ như các url bạn đã cạo là đường dẫn tương đối.

ImagePipeline không biết máy chủ lưu trữ của bạn, do đó, nó không thể tạo đường dẫn tuyệt đối để thu thập thông tin.

import urlparse 
item['image_urls'] = [ urlparse.urljoin(response.url, u) for u in image.extract() ] 
+0

công cụ thực sự tuyệt vời này. tnx –

7

"Thiếu lược đồ trong yêu cầu url" có nghĩa là bạn đang thiếu "http: //" một phần của url, có lẽ hầu hết vì của URL của bạn là tương đối và tuyệt đối nên.

Các vấn đề liên quan