【问题标题】:Unable to extract 'src' attribute from 'img' tag无法从“img”标签中提取“src”属性
【发布时间】:2019-10-09 23:51:10
【问题描述】:

我在电子商务网站上抓取高清图像。这是包含我想要的 url 的 html 块,在开发工具中可以看到。

<img class="_3togXc _3wp706" alt="" src="https://rukminim1.flixcart.com/image/880/1056/jtn9bww0/t-shirt/5/g/g/m-hm-1001-black-red-helmont-original-imafdfvvr8hqdu65.jpeg?q=50">

但是尝试通过response.xpath('//img[@class="_3togXc _3wp706"]/@src').extract() 提取 src 会返回一个空列表。

这是网页:https://www.flipkart.com/mufti-striped-men-henley-neck-blue-t-shirt/p/itmf97tf5musdzhn?pid=TSHF97EQJFKYZNVR&lid=LSTTSHF97EQJFKYZNVRTO8NYI&marketplace=FLIPKART&srno=b_1_2&otracker=nmenu_sub_Men_0_T-Shirts&fm=organic&iid=en_gnuFJK6aCYh16bFjfooxjvp8RCgW1Qv5%2FUGcIk2pk%2B0jLtbLFo%2BqPL6Dtf5pUqburiU8mTUCC4lmPqYF651UZQ%3D%3D&ppt=browse&ppn=browse&ssid=mjlrz5luxs0000001570554928173

请帮忙!谢谢。

【问题讨论】:

标签: python html xpath scrapy src


【解决方案1】:

检查响应中的内容。好像是在客户端生成的。

此外,您不应该像这样使用 XPath 按类进行选择,至少对每个类使用 contains()(或更复杂的 https://stackoverflow.com/a/1604480/964478),或者更好地使用 CSS 选择器(img._3togXc._3wp706)。

【讨论】:

    【解决方案2】:

    试试这个

    In [7]: response.xpath('//*[@class="_2_AcLJ _3_yGjX"]/@style').extract_first()
    Out[7]: 'background-image:url(https://rukminim1.flixcart.com/image/128/128/jy1v7gw0/t-shirt/7/q/h/m-mfk-6564-g-16-blue-mufti-original-imaf97tfrbhdnhhn.jpeg?q=70)'
    

    In [11]: response.xpath('//*[@class="_2_AcLJ _3_yGjX"]/@style').re_first('background-image:url\((.*)\)')
    Out[11]: 'https://rukminim1.flixcart.com/image/128/128/jy1v7gw0/t-shirt/7/q/h/m-mfk-6564-g-16-blue-mufti-original-imaf97tfrbhdnhhn.jpeg?q=70'
    

    最终

    response.xpath('//*[@class="_2_AcLJ _3_yGjX"]/@style').re('background-image:url\((.*)\)')
    

    替换/image/128/128/ ------ /image/800/960

    【讨论】:

      猜你喜欢
      • 2013-04-06
      • 2021-07-27
      • 2022-10-21
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多