允许所有子域

2024-05-17 05:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个网站,它的网页分为许多子域 我知道我需要一个带有RuleCrawlSpider,但我需要的规则是“允许所有子域,并让解析器根据数据处理自己”(意思是-在这个例子中,item_链接位于不同的子域中)

代码示例:

def parse_page(self, response):
    sel = Selector(response)
    item_links = sel.xpath("XXXXXXXXX").extract()
    for item_link in item_links:
            item_request = Request(url=item_link,
                                     callback=self.parse_item)
            yield item_request

def parse_item(self, response):
    sel = Selector(response)

**编辑** 为了让问题更清楚,我想要一个爬网的能力。example.com网站->; 意思是不能得到Filtered offsite request to 'foo.example.com'

**另一个编辑** 按照@agstudy的答案,确保不要忘记删除allowed_domains = ["www.example.com"]


Tags: 子域selfcom编辑parse网站exampleresponse
2条回答

您可以为规则设置allow_domains列表:

rules = (
       Rule(SgmlLinkExtractor(allow_domains=('domain1','domain2' ), ),)

例如:

^{pr2}$

这将筛选允许的URL,如:

www.example.com/blaa/bla/
www.example1.com/blaa/bla/
www.something.example.com/blaa/bla/

如果不使用规则,而是使用Spider的allowed_domainsclass属性,那么还可以设置allowed_domains = ['example.com']。这将允许example.com的所有子域,例如foo.example.com。在

相关问题 更多 >