based on scrapy framework