【问题标题】:Flipkart.com image src is changing after scraping抓取后 Flipkart.com 图像 src 正在更改
【发布时间】:2021-01-24 07:31:54
【问题描述】:

所以我试图抓取 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 shell 中抓取它时,我得到了不同 -

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 会发生变化。

【问题讨论】:

    标签: python scrapy scrapy-shell


    【解决方案1】:

    您需要使用 selenium 获取数据。图像数据是动态加载的。这里使用 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
    

    注意:如果系统中没有安装 selenium,则需要安装。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 2016-02-13
      • 2012-08-28
      • 2016-11-30
      • 2013-08-23
      • 1970-01-01
      相关资源
      最近更新 更多