1

Scrapy のルールを使用して、Web サイトの特定の部分のスクレイピングを拒否するにはどうすればよいですか。

Scrapy に www.example.com/help/nl/ と一致するリンクをクロールしてもらい、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')
4

2 に答える 2

0

これを試して

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'),
    )
于 2013-03-18T13:44:26.550 に答える