【发布时间】:2013-02-08 09:24:07
【问题描述】:
我正在使用 Scarpy 中的 CrawlSpider 类构建一个爬虫。我怀疑链接提取器一遍又一遍地循环相同的链接。有没有办法限制链接提取器并拒绝已经被抓取的链接?这可以在拒绝输入中不使用正则表达式的情况下完成吗?
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
}
【问题讨论】:
-
如果您发布了完整的蜘蛛代码和您尝试抓取的网站,我们可以查看是否正在解析相同的链接。
标签: python scrapy web-crawler