2014-11-11 2 views
1

Привет, это мой код, чтобы очистить несколько изображений в scrapy, но его единственное обрывки одного изображения.Загрузка изображений mulitple с помощью scrapy на одной странице

Можете ли вы сказать мне, где я ошибаюсь?

def parse(self, response): 
    item = DmozItem() 
    image_urls = response.xpath('//div[@class="overhid"]//img/@src').extract() 
    item['image_urls'] = [ x for x in image_urls] 
    return item 
+0

Не мог бы вы поделиться URL вы веб-выскабливание? Или, по крайней мере, показать содержимое 'div' с' class = "overhid" '? Благодарю. – alecxe

+0

это ссылка [link] (http://www.snapdeal.com/product/xolo-win-q900s-black/770747222), и через xpath я могу видеть 6 ссылок на изображения. Правильно ли мой код? – user3706469

ответ

2

Проблема заключается в том, что другие изображения имеют lazysrc атрибут вместо src. Получить и атрибуты:

$ scrapy shell http://www.snapdeal.com/product/xolo-win-q900s-black/770747222 
>>> for image in response.xpath('//div[@class="overhid"]//img'): 
...  print image.xpath('@src | @lazysrc').extract()[0] 
... 
http://n4.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-1-9dbe9.jpg 
http://n1.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-2-1c8f7.jpg 
http://n3.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-3-09694.jpg 
http://n4.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-4-af867.jpg 
http://n4.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-5-73467.jpg 
http://n2.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-6-5c97f.jpg 

Вот как вы должны изменить parse() обратный вызов:

def parse(self, response): 
    item = DmozItem() 
    images = response.xpath('//div[@class="overhid"]//img') 
    item['image_urls'] = [image.xpath('@src | @lazysrc').extract()[0] 
          for image in images] 
    return item 
+0

эй, какие изменения я должен внести в свой код – user3706469

+0

@ user3706469 уверен, обновил ответ. – alecxe

+0

спасибо, что его работающая потрясающая также может указать одну вещь в моем изображении-url "http://n4.sdlcdn.com/imgs/a/k/9/small/Xolo-WIN-Q900s-Black-SDL051074306-1- 9dbe9.jpg «есть« маленькое »слово, которое я хочу удалить, потому что из-за этого я получаю небольшое изображение. Скажите, пожалуйста, как это сделать? – user3706469

Смежные вопросы