我正在尝试使用 Scrapy 收集域下的所有 URL。我试图使用 CrawlSpider 从主页开始抓取他们的网页。对于每个页面,我想使用 Xpath 来提取所有的 href。并以键值对等格式存储数据。
Key:当前Url Value:本页所有链接。
class MySpider(CrawlSpider):
name = 'abc.com'
allowed_domains = ['abc.com']
start_urls = ['http://www.abc.com']
rules = (Rule(SgmlLinkExtractor()), )
def parse_item(self, response):
hxs = HtmlXPathSelector(response)
item = AbcItem()
item['key'] = response.url
item['value'] = hxs.select('//a/@href').extract()
return item
我定义我的 AbcItem() 如下所示:
从 scrapy.item 导入项目、字段
class AbcItem(Item):
# key: url
# value: list of links existing in the key url
key = Field()
value = Field()
pass
当我像这样运行我的代码时:
nohup scrapy crawl abc.com -o output -t csv &
机器人似乎开始爬行,我可以看到所有配置日志都填充了 nohup.out 文件,但我的输出文件中没有任何信息..这是我想要收集的,有人可以帮我吗?我的机器人可能有什么问题?