这两天学习了下scrapy,并试着用它爬取了大家都扎堆爬的豆瓣排名前250的电影,中间提升了自己对scrapy的认识,并踩了一些坑总结一下。(以下内容基于Python3.5;scrapy1.3.3下)
只想看代码,here that is!
1.定义所需爬取元素的model
items.py
import scrapy
class DoubanscrapyItem(scrapy.Item):
url = scrapy.Field()
rank = scrapy.Field()
movie_name = scrapy.Field()
comment = scrapy.Field()
price = scrapy.Field()
爬取元素并不是必须声明一个model,也可以直接在爬虫代码中,将爬取的元素直接通过这种方式来展现
yield {
url: .....,
movie_name: .....
}
省略部分是爬取对应元素的规则
根据官方文档介绍,Item是保存结构数据的地方,Scrapy可以将解析结果以字典形式返回,但是Python中字典缺少结构,在大型爬虫系统中很不方便,Ite