我正在抓取电子商务网站中的高清图像。如开发工具所示,这是包含所需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会返回一个空列表。
请帮助!谢谢。
答案 0 :(得分:0)
检查响应内容。看起来它是在客户端生成的。
此外,您不应使用此类XPath通过类进行选择,至少不要对每个类使用contains()
(或更复杂的https://stackoverflow.com/a/1604480/964478),或者最好使用CSS选择器(img._3togXc._3wp706
)。
答案 1 :(得分:0)
尝试
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