爬呀爬,小鸡不吃灰,这样是不就好受不少,/斜眼笑
简介
学习scrapy第一个练手玩的项目,整体不复杂
主要工作量应该就是动态js解析(相关内容之前文章有介绍) 和 定义 Image的Pipeline了吧
还是 ubuntu 16.04 环境下配置,推荐使用vultr
windows下也可运行,windows下环境配置不能一键,这里就不细说了,可以根据下面介绍,自己按需配置
脚本下载与环境配置
# ubuntu install nodejs curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs # ubuntu install python and python libs apt update && apt install -y python3 python3-pip python3-dev python3-pillow libffi-dev libssl-dev unzip pip3 install PyExecJS,scrapy # download scrapy scripts wget xiaofd.github.io/scrapy/one.zip && unzip one.zip cd one # run examples # scrapy crawl 733 -a url="https://www.733.so/mh/12071/"
脚本运行
上面也有了,解压后,cd到one目录下
然后执行下面语句爬取一本漫画:
scrapy crawl 733 -a url="https://www.733.so/mh/12071/"
链接获取方式:
注1**
- 脚本没报错、崩溃,就是在正常运行,有时候没显示是正在下载队列中的图片,等待即可
- 如果中间某些图片下载出错,默认是会跳过去的,如果感觉缺图片,可以反复执行爬取代码,爬取是增量的【这里是我对scrapy工作原理还不太熟悉,回头再看看】
注2*
脚本默认设定需要传递一个漫画链接,爬取这个漫画的全部图片
非全站爬取,目的嘛稍微提高下门槛,MJJ们太可怕,爬爬就好,别把人家爬挂了
会改的大佬想折腾就改改代码,不会改的,哈哈哈哈,可以(好好学习)Py(thon)哇
代码简单介绍
- settings.py
配置了爬虫名,pipeline名等名字
同时设置了图片pipeline的下载目录(爬虫目录/pic 目录下)以及图片的下载延迟
这里配置的下载目录最好设置为绝对路径,相对路径是相对运行脚本的目录
- pipelines.py
主要通过file_path函数,结合item信息,设置下载目录,分章节保存文件
- items.py
设定了图片Item需要用到的三个变量,每个变量用 scrapy.Field() 初始化声明
- spider/a733.py
类:name变量,为爬虫名,即运行 scrapy crawl 爬虫名 ,里面的这个名字
类:__init__函数,为了传递默认爬取的漫画链接url
类:parse函数,爬虫调用漫画链接获取目录信息供进一步爬取
类:dchap函数,意为download chapter,用来爬取每一个章节同时执行js解析出图片地址信息,然后将item传递给pipeline下载
- 其余未列出:均为默认生成