记录scrapy爬虫----经典豆瓣图书排行

记录之前学习scrapy爬虫框架时写的一个脚本,ps.发现很多学过的东东,如果不及时复盘记录,后面用的少了就淡忘了。。。所以把之前搞过的东东都搬上来,常看常新,耶!

1、新建scrapy project:
选定文件夹,shift+鼠标右键,打开powershell,输入scrapy startproject douban_book_crawler记录scrapy爬虫----经典豆瓣图书排行按照提示输入:cd douban_book_crawler
scrapy genspider douban www.douban.com记录scrapy爬虫----经典豆瓣图书排行现在路径D:\AI_Machinelearning\nlp_knowledge\douban_book_crawler\douban_book_crawler下,已经产生如下文件模板:
记录scrapy爬虫----经典豆瓣图书排行
而这些文件模板的架构就是scrapy官方架构图中描述的:把原本(发送request->接收request–>网页下载–>网页反馈response–>接收response–>网页解析–>数据存储)的工作,拆分成4道工序:
1)负责发送request,接收response,以及解析网页的spider(最主要干活的人----如何干活需要咱们自定义)
2)负责下载网页,并把下载好的网页传给spider的middleware(次要干活的人----框架已完成,有些设置user agent、设置header之类的工作要自定义一下)
3)负责接收request,把request队列排好并提供给middleware的scheduler(1和2之间的二传手—框架已完成)
4)把spider解析好的数据存到item变量里,再通过pipeline将item里的数据存到指定路径或库里(收尾整理库存的人—如何存放,存到哪里需要咱们自定义)
5)所有上述交接通信都由指挥部engine指挥(光指挥不干活的人—框架已完成)记录scrapy爬虫----经典豆瓣图书排行2、主要写douban.py、items.py、pipeline.py代码
1)items.py按照自己需要爬取的内容,进行变量设置:
把pass改成如下:
name = scrapy.Field()
price = scrapy.Field()
publisher = scrapy.Field()
ratings = scrapy.Field()
edition_year = scrapy.Field()
author = scrapy.Field()

2)douban.py按自己需要更改爬取地址和爬取逻辑:
记录scrapy爬虫----经典豆瓣图书排行

3)pipeline.py的格式和路径进行更改:
记录scrapy爬虫----经典豆瓣图书排行4) setting.py
里面的USER_AGENT改成正常的USER_AGENT值
里面ITEM_PIPELINES 前面#删除

5)新建start.py 这样可以直接通过pycharm运行,不用使用命令行
记录scrapy爬虫----经典豆瓣图书排行
运行start.py结果:
记录scrapy爬虫----经典豆瓣图书排行