Scrapy 刮擦规则否认

Scrapy 刮擦规则否认,scrapy,Scrapy,我怎样才能通过使用Scrapy中的规则来否认对网站某些部分的刮削呢 我希望Scrapy抓取匹配www.example.com/help/nl/en的链接,拒绝所有匹配www.example.com/help/en/和www.example.com/website/的链接 我有以下代码: class MySpider(CrawlSpider): name = 'myspider' allowed_domains = ['example.com', ] start_urls

我怎样才能通过使用Scrapy中的规则来否认对网站某些部分的刮削呢

我希望Scrapy抓取匹配www.example.com/help/nl/en的链接,拒绝所有匹配www.example.com/help/en/和www.example.com/website/的链接

我有以下代码:

class MySpider(CrawlSpider):
    name = 'myspider'
    allowed_domains = ['example.com', ]
    start_urls = ['https://www.example.com/help/nl/', ]
    rules = (
        Rule(SgmlLinkExtractor(allow=(r'/help/nl/',)), callback='parse_response'),
    )
但它正在整个网站上爬行

更新

我希望Scrapy只关注包含/help/nl/的链接

Rule(SgmlLinkExtractor(allow=(r'/help/nl/',), deny=(other than /help/nl/), callback='parse_response')
试试这个

class MySpider(CrawlSpider):
    name = 'myspider'
    allowed_domains = ['example.com', ]
    start_urls = ['https://www.example.com/help/nl/', ]
    rules = (
        Rule(SgmlLinkExtractor(allow=(r'/help/nl/',),deny=(r'/en/$',r'/website/$',)), callback='parse_response'),
    )

我的决心与@akhter答案非常相似。但是我没有使用正则表达式

我用过:

deny=('/help', '/website')
它应该使其能够阻止url(/help或/website)中的任何内容


希望它能帮助你

你在爬网什么URL/网站?当你运行爬网程序时,
下载程序/response\u count
的值是多少(它将显示在日志的末尾),你能编辑这个问题来显示一些你想排除的爬网页面吗?我刚刚用你的规则和akhter的规则运行了代码,爬网了相同数量的页面,所有页面的格式都是“/help/nl/”。