当前位置: 首页 > 知识库问答 >
问题:

Scrapy Splash返回空列表

郎玮
2023-03-14

我试图用刮擦和飞溅来刮取衣服的图像和一些产品信息。我想得到的形象,只有产品(所以没有模型)。比如这张照片https://www2.hm.com/nl_nl/productpage.0220094001.html

然而,如果我试图让src在Scrapy shell中

回答xpath('//figure[包含(@class,“secondary”)]///img//@src')。摘录()

返回一个空列表。

有人知道我如何获得这些次映像的src吗?

提前谢谢!

共有2个答案

子车芷阳
2023-03-14

如果使用Splash呈现页面(如您所述),则xpath应该能够正常工作。您可以在scrapy shell中进行如下测试:

scrapy shell 'http://localhost:8050/render.html?url=https://www2.hm.com/nl_nl/productpage.0220094001.html&timeout=100&wait=0.5'

您的xpath给出了5个图像的列表:

response.xpath('//figure[contains(@class, "secondary")]//img//@src').extract()
['//lp2.hm.com/hmgoepprod?set=source[/04/2f/042fded3bfa88dda5680a6470f12f180bca4739e.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/8b/03/8b03a5491cc1fdfd27c7a308ad8fab2e1d408754.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/11/28/1128425ddada72796f5f4ad3b46d5836957f9522.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/79/63/796367ae5cfea46bf6b8eb2e1afe2fb5e54e86f4.jpg],origin[dam],category[ladies_dresses_maxidresses],type[DESCRIPTIVESTILLLIFE],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmprod?set=source[/model/2017/E00 0220094 001 08 3075.jpg],width[843],height[985],x[353],y[123],type[DETAIL],res[s]&hmver=0&call=url[file:/product/main]']
钱跃
2023-03-14

检查响应中的json。xpath('//script[包含(text(),“productArticleDetails=)]/text())。它包含页面上关于产品的所有数据,并带有图像。

 类似资料:
  • 有人能告诉我为什么列表返回空吗?我的xpath是准确的,因为我重新检查了它,但我仍然无法迭代它,而调试for循环甚至没有执行。我不确定我哪里出了问题。

  • 问题内容: 我正在尝试编写一个用于与last.fm API进行交互的小脚本。 我有一点使用的经验,但是以前使用它的方式似乎无效,而是返回一个空列表。 我删除了API密钥,因为我不知道它到底应该有多私密,并举了一个示例,说明了我在该位置接收的XML。 与API交互的类: 调用的get_now_playing方法: 我收到的xml样本: 问题答案: 问题在于, 如果给定标签名称,则仅搜索元素的直接后代

  • 我们正在使用Spring 4.x 和 swagger-jersey2-jaxrs_2.10。Swagger 不会列出我的 API,它总是只返回版本详细信息。 pom.xml web.xml 资源类 ResourceConfig类 我的应用程序基路径/api-docs返回

  • 如果我跑: 我会得到一张空名单。我猜它与名称空间有关,但我不知道如何修复它。

  • 问题内容: 我在Android中有一个客户端应用程序,用于将文件发送到服务器。服务器使用Apache Commons FileUpload API来解析表单数据值。 该发送该请求: 服务器代码: 问题就在这里。返回的列表为空,我无法获取表单数据值。 问题答案: 如果您已经(隐式)预先解析了请求正文,则此位置将为空。HTTP请求正文只能被读取/解析 一次 (因为客户端仅发送一次,并且不会多次发送)。

  • 我正在尝试检索一个带有Android特定注释的类列表。我正在尝试使用反射库来完成此操作。但无论我做什么,Reflections都返回一个空集。最后,我尝试使用Reflections.getAllTypes(),它应该返回包中的所有类,它给我的消息是“Could not find subtypes of Object.nake SubTypesScanner initialized to inclu