您的位置:首页 > 编程语言 > Python开发

学习python 中的scrapy爬虫框架艰辛路,不推荐看,主要纪录自己学习笔记的

2017-11-25 20:09 766 查看

这个文章主要纪录了我学习scrapy爬虫框架的过程,只是到时候有个梳理的过程并不含解bug的方法

首先一直对爬虫很好奇,就学习了scrapy 爬虫框架,首先利用pip install scrapy 安装了这个框架

然后就是建立自己的爬虫项目  在dos中输入scrapy startproject Projectname(自己的项目名称)

这就建立了一个爬虫工程了 ,然后在终端中  建立一个爬虫 输入命令为 scrapy genSpider  Spider_name  domain_name(域名任意字幕都可以影响不大)

这样就一步步的来了 , 到了项目的目录下 主要有 spiders 文件夹  这个是里面主要装的是你的爬虫的文件 , 再有__init__.py文件(这个不多说),items.py ,当你爬取一个地址的时候,可以开启pipeline管道来把你爬取的数据来做处理转到一个item中,然后在返回出来  , 下一个就是中间件文件 middlewares.py ,这个文件中包含得类来进行spider进行包装,让你的下爬虫可以进行爬取通过js动态请求到的数据,最后就是settings.py文件   这个是文件的关键,上面所说的item管道和中间件的使用都要通过setting去设置,如果不设置是没法用的,还有一个当你爬取图片的时候可以有一个自动下载的图片管道,来帮助你可以快速的下载图片 

初步就是那么多了,然后即使进行多你的爬虫进行设计,首先你的爬虫的名字为xxx,那么在spiders文件中就会有一个xxx.py文件,点进去会有一个继承子Spider类的类,

并且给你进行了初步设置 name = "xxx",爬虫的名字必须是name变量来装,然后就是一个你请求的地址start_urls这是一个数组来装你的爬取的地址 allowed_domains是爬取的域名,上述的三个域名都是写死的不能用别的变量来代替 ,然后就是类中的parse方法当运行你的爬虫的时候会走这个方法,名字不可以变 , 方法名中主要参数是个response,response.body可以得到你请求页面的body中的二进制数据,然后在通过decode()函数来解码就可以得到页面标签结果,在函数中通过response.xpath(查找的HTML标签)来得到你的初步结果
然后通过for循环遍历里面每一个结果,item.xpath("text()")可以得到标签里面的文本,@herf则是得到的是标签的herf属性,获得属性就是通过@获得,xpath是通过标签结构来获取的还有个函数css()是通过样式的方法来匹配的 ,最后还需要调用extract()函数来获取值,先写到这,理解深了再写,


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: