Источник изображения Flipkart.com меняется после очистки

Итак, я пытался очистить сайт flipcart.com исключительно в учебных целях, но столкнулся с проблемой, не понимаю почему. Я пытался очистить изображение src по этой ссылке - https://www.flipkart.com/search?q=sofa и после того, как я обнаружил в инструментах разработки, что src был-

<img class="_396cs4 _3exPp9" alt="Muebles Casa Croma Leatherette 3 Seater  Sofa" src="https://rukminim1.flixcart.com/image/612/612/jvtujrk0/sofa-sectional/z/w/h/light-brown-na-colton-letheratte-light-brown-three-seater-sofa-original-imafghzgwdznm33t.jpeg?q=70">

но когда я попытался очистить это в оболочке scrapy, я получил другое -

In [1]: response.xpath('//div[@class="CXW8mj _21_khk"]/img/@src').get()
Out[1]: '//img1a.flixcart.com/www/linchpin/fk-cp-zion/img/placeholder_fcebae.svg'

Кто-нибудь может сказать мне, как решить эту проблему или почему меняется src.


person Sandip Mukherjee    schedule 24.01.2021    source источник


Ответы (1)


Вам нужно использовать селен для получения данных. Данные изображения загружаются динамически. Вот используйте scrapy.Selector и selenium для извлечения данных.

from selenium import webdriver
from scrapy.selector import Selector
browser = webdriver.Firefox(executable_path='./geckodriver')
browser.get(url="https://www.flipkart.com/search?q=sofa")

page = browser.page_source
image_data = Selector(text=page)
print(image_data.xpath('//div[@class="CXW8mj _21_khk"]/img/@src').get())

выход

https://rukminim1.flixcart.com/image/612/612/jyeq64w0/sofa-sectional/u/k/b/blue-na-56101502sd00927-godrej-interio-blue-original-imaffpsrybgrhvxb.jpeg?q=70

примечание: вам необходимо установить селен, если он не установлен в вашей системе.

person Samsul Islam    schedule 24.01.2021