我正在使用scrapy来从其首页上抓取网站来抓取隐私权政策,我想智能地抓取包含特定关键字(隐私,数据,保护等)的页面内的特定链接。
我看到scrapy的CrawlSpider和LinkExtractor对象允许这样做,但是我希望LinkExtractor不仅将正则表达式应用于发现的链接,而且还应用于{ {1}}标签
例如,为了更好地识别以下情况:
<a></a>
其中,URL可能不是完美的匹配,但是HTML标记中的文本会更有帮助。
我看到scrapy的LinkExtractor对象已经有一个名为<a href="http://example.com/legal">Check out our privacy policy</a>
的参数,它可以对HTML标记内的文本启动操作,但是我不确定如何“返回正向链接匹配”(例如process_value
参数中给出的regex表达式将),因此“将该链接添加到CrawlSpider对象要解析的事物列表中”
答案 0 :(得分:0)
您将可以在Scrapy 1.7.0 或更高版本中执行此操作。参见#3635。
所做的更改将restrict_text
参数添加到LinkExtractor
。来自master branch of the Scrapy documentation on LinkExtractor:
restrict_text (正则表达式(或列表))–链接文本必须匹配的单个正则表达式(或正则列表)提取。如果未给出(或为空),则它将匹配所有链接。如果给出了正则表达式列表,则如果链接至少匹配一个链接,则将提取该链接。