首页 > 解决方案 > scrapy 用户代理是否忽略自定义数据属性

问题描述

在 W3 学校

它说用户代理将忽略自定义数据属性。看到来自w3schools
的图片 我很好奇,如果scrapy 在我得到空列表时忽略这些标签可能是因为data-v-529299fa=""HTML 中使用了数据属性。这是我的来源

 <a data-v-529299fa="" target="_blank" href="https://data.amica.com.pl/files/pdm_IO/SER_0019314_ART.pdf" 
 class="product-spec__file-link">
    <font style="vertical-align: inherit;">
        <font style="vertical-align: inherit;">Operating manual AWDG7512CL_1140173 (PL)</font>
    </font>
</a>

我想抓取包含pdf链接的锚标签的href。所以这是我尝试过的

 pdfs = response.xpath('//a[@data-v-529299fa=""]/@href').extract()
# also 
 pdfs = response.css('a[data-v-529299fa=""]::attr(href)').extract()

我得到了 [] 空列表。有超过 1 个 pdf,所以这就是我使用 extract() 的原因。任何帮助,将不胜感激。

标签: pythonhtmlscrapyweb-crawlercustom-data-attribute

解决方案


不,Scrapy 不会从服务器收到的响应中删除任何内容。

该行的意思是 Web 浏览器不会对这些属性的内容进行操作,它们不会根据其内容更改它们显示的内容(尽管 JavaScript 代码可以做到这一点)。


推荐阅读