首页 > 解决方案 > 为什么链接提取器会跳过链接?

问题描述

我正在抓取一些页面并尝试使用 LinkExtractor 从响应中获取 URL。一般来说,这很好,但 LinkExtractor 无法提取到 pdf 文件的相对链接,该文件位于html的第 111 行

我已经尝试了很多,但无法弄清楚链接提取器如何以及何时删除相关链接,以及这是否是提取器应该如何工作

scrapy shell "https://www.limburg.nl/algemeen/zoeken/?mode=zoek&ajax=true&zoeken_sortering=Num&pager_page=4"
from scrapy.linkextractors import IGNORED_EXTENSIONS
skip_extensions = list(set(IGNORED_EXTENSIONS) - set("pdf")) + ["gz","txt","csv","cls","and","bib","xml","dat","dpr","cfg","bdsproj","dproj","local","tvsconfig","res","dsk"]
extractor = LinkExtractor(deny_extensions=skip_extensions)
extractor.extract_links(response)   

标签: pythonweb-scrapinghyperlinkscrapy

解决方案


set()将序列作为参数,并为序列中的每个项目创建一组。字符串是单个字符的序列,因此set("pdf")构成一组字符p d f

如果您想要集合中的整个字符串“pdf”,那么您需要将它包含在一个列表中:

set(["pdf"])

{}或者使用符号而不是调用可能更简单set()

{"pdf"}

推荐阅读