recursion - 通过 html 标签的值进行抓取链接提取器
问题描述
我正在使用scrapy通过从其主页抓取网站来抓取隐私政策,因此我想智能地抓取包含特定关键字(隐私、数据、保护等)的页面中的特定链接。
我看到scrapy的 CrawlSpider 和LinkExtractor对象允许这样做,但是我希望LinkExtractor不仅将正则表达式应用于发现的链接,还应用于<a></a>
标签中的文本
例如,为了更好地识别以下情况:
<a href="http://example.com/legal">Check out our privacy policy</a>
其中,URL 可能不是完美匹配,但 HTML 标记中的文本更有帮助。
我看到 scrapy 的 LinkExtractor 对象已经有一个名为的参数process_value
,它可以对 HTML 标记中的文本启动操作,但我不确定如何“返回正链接匹配”(就像allow
参数中给出的正则表达式一样)因此“将此链接添加到要由 CrawlSpider 对象解析的事物列表中”
解决方案
您将能够在 Scrapy 1.7.0或更高版本中执行此操作。见#3635。
这些更改将restrict_text
参数添加到LinkExtractor
. 来自LinkExtractor 上 Scrapy 文档的主分支:
restrict_text(正则表达式(或列表))——链接文本必须匹配才能被提取的单个正则表达式(或正则表达式列表)。如果未给出(或为空),它将匹配所有链接。如果给出了正则表达式列表,则如果至少匹配一个,则将提取该链接。
推荐阅读
- flutter - 如何使用 Flutter hive 创建标记为 fabourite 按钮?
- javascript - 如何添加条件删除类 -
- c# - 如何制作一个从C#中的列表返回值的函数
- python - DataSpell (JetBrains) 在 Jupyter 笔记本中显示错误:“您的浏览器不支持 WebGL ...”
- flutter - 无法在 Flutter Video Player 中播放 IPTV 频道
- nlp - `pylucene` 和 `pyhanlp` 之间有冲突吗?
- java - Java - 将对象插入队列,但在 java 中出现异常,即使节点已初始化
- python - 如何在 Python Pandas 中查找文件
- python - 当熊猫数据框中只有一行时获取特定列的值
- python - 使用Sqlalchemy查询SQL,无法返回最新数据