2013-02-08 94 views
1

我正在構建使用CrawlSpider類的抓取工具。我懷疑鏈接提取器一遍又一遍地循環相同的鏈接。有沒有辦法限制鏈接提取和拒絕已被刮掉的鏈接?這可以在拒絕輸入中沒有正則表達式的情況下完成嗎?Scrapy鏈接提取器否認以前刮過的鏈接

My Rules look like this: 

{

rules = (
    #Rule(SgmlLinkExtractor((allow='profile')), follow=True), 
    Rule(SgmlLinkExtractor(deny='feedback\.html'),callback='parse_item', follow=True), 
    ) 

} 
And my parse_item is: 

{

def parse_item(self, response): 
    hxs = HtmlXPathSelector(response) 
    element = hxs.select('//table[@id="profilehead"]/tr/td/a/@href').extract() 
    try: 
     open('urls.txt', 'a').write(element[0]) 
     open('urls.txt', 'a').write('\n') 
    except IndexError: 
     # Site doesn't have link to another website 
     pass 

}

+0

如果您發佈充分蜘蛛的代碼和你試圖抓取的網站,我們可以看看是否正在分析相同的鏈接。 – Talvalin

回答