【问题标题】:Scrapy rules for links selection链接选择的 Scrapy 规则
【发布时间】:2020-10-21 09:41:38
【问题描述】:

我正在尝试垂直抓取遵循 html 方向的简单规则的页面:

他们有 /MLA#### 或 /MLA-####(# 作为随机数)

问题是,使用以下代码,当 /MLA#### 或 /####MLA### 页面出现我的 scrapy 时,scrapy 只会检测到我与 /MLA-#### 名称的页面一样好代码不起作用,抓取错误

 rules =  (Rule(LinkExtractor(allow=r'/_Desde_'), follow=True),
        Rule(LinkExtractor(allow='/'+'MLA'), follow=True, callback='parse_items'))

以前是这样的:

 rules =  (Rule(LinkExtractor(allow=r'/_Desde_'), follow=True),
        Rule(LinkExtractor(allow=r'/MLA'), follow=True, callback='parse_items'))

那么我该如何对我的代码说:我想抓取所有包含 MLA 的链接,无论这些词的前后是什么。

感谢你们的cmets, 问候

【问题讨论】:

    标签: python web-scraping scrapy


    【解决方案1】:

    事实上'/' + 'MLA' 完全等于'/MLA' (: 它是关于字符串连接的。你需要的是几个正则表达式。

    我认为Rule(LinkExtractor(allow=[r'\d+MLA', r'MLA-\d+'], follow=True, callback='parse_items') 对你有用。阅读正则表达式 - 这是抓取的必要条件。在这种情况下,一切都非常简单:我们有 MLA 和 /d+,它代表 一个或多个数字

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      相关资源
      最近更新 更多