Scrapy 初步使用,新手上车
继续scrapy这个友好框架,主要分三步来讲解:代码实例,原理讲解,高级特性
1.Scrapy 的代码实例:
![53802f4e304dfa0e550456d4a4cd59ff.png](https://i-blog.csdnimg.cn/blog_migrate/bf3b8263dc539b011a5543b4ce438f37.jpeg)
大家看到上图,用java写一个爬虫需要很多的代码,同一个功能,它的代码会繁杂得多。
接下来我们看用scrapy写的:
![fdd8497ec08df08227ac9f071e53912c.png](https://i-blog.csdnimg.cn/blog_migrate/c7cbf504d6d1a0e022a9f2a6f0325b00.jpeg)
2.Scrapy原理讲解:
就简短的几行代码,就实现了同样的功能,可见python 爬虫的优势还是很明显,
尤其有了scrapy 这样的友好框架,写起爬虫来如鱼得水。
在看上图,引入一个scrapy 的spider爬虫类,起始url,这是我们要抓取的开始的html 网页地址,一个parse方法里面有两个函数, self引用自己类里的对象,相当于this, response:这个是响应,返回的heml ,直接用respose.css提取url, 用scrapy 里封装好的request向网页发起请求,直接返回yield向网页发起请求的内容。我们在写自己的小爬虫的时候,返回都用的return ,但scrapy里用的yield, 这点记住。
我们在写单一的爬虫的时候,这些都是自己写的,有了scrapy就不一样的,下面的parse_question函数就是提取我们想要的内容了。大家以后是可以通过修改一些参数完善scrapy.比如time,url这些。
就这样所有人过程就完结了,是不很简单,很开心很happy.大家是不是感觉到写一个爬虫并不是那么的难,几行代码,运行几个命令就Ok了。其实是scrapy在后台帮我们做了很多。
3.Scrapy高级特性:
![dbdf2c876888b21e72b8277cc9c2027d.png](https://i-blog.csdnimg.cn/blog_migrate/0631dd67d773247ecd5e6e75f94c44bc.jpeg)
图右边scrapy里面内置了数据抽取器,我们熟悉的BeautifullSoup里的经常用的css 选择器,xpath,正则re,控制台scrapy shell,内置的几个存储器,json,csv,xml等,还有下面的内置,自动编码,之前我们写爬虫要自己编码。
cookies 和session,就个是存储用户经浏览器留下的信息,就个是服务器端的信息,比如用户名密码这些。
HTTP 压缩,存储,缓存。
User-agent spoofing就是不停的轮换User-agent请求头,我们的浏览器模拟请求头集合,它也帮我们搞定了,
Robots.txt 这个没文化网站都有的文件用来告诉你那些网站可以爬取那些不是以。
Crawl depth restriction 限制爬取的深度。
所以打家还是有必要好好的学习scrapy。我将和大家一起。