python - 为什么链接提取器会跳过链接?
问题描述
我正在抓取一些页面并尝试使用 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)
解决方案
set()
将序列作为参数,并为序列中的每个项目创建一组。字符串是单个字符的序列,因此set("pdf")
构成一组字符p
d
f
。
如果您想要集合中的整个字符串“pdf”,那么您需要将它包含在一个列表中:
set(["pdf"])
{}
或者使用符号而不是调用可能更简单set()
:
{"pdf"}
推荐阅读
- api - 重新渲染 Vue JS 组件
- java - spark提交java.lang.IllegalArgumentException:无法从空字符串创建路径
- forms - Puppeteer:单击网站上的按钮不起作用
- android - 如何在 Jetpack 中的 ModelDrawer 布局中添加 FloatingActionButton 组合在 android
- asp.net-core - NewtonsoftJsonInputFormatter 在 .NET5 中不能用作 InputFormatter
- java - UNIX 无法读取 MyBatis 资源文件
- unit-testing - 在单元测试控制器 NestJs 中上传模拟文件
- ios - 如何将嵌套节点从 Firebase 实时数据库检索到 iOS 应用程序
- c++ - 为什么我的程序在使用 -fsanitize=leak 时不会停止?
- sql - 等待 x 秒后重试 SQL UPDATE 查询