一、 Scrapy入坑。
a) Scrapy的安装。
这个没什么可讲的,网上一大把。
注意的问题,可能我下载的是32位的python,出现了pywin32没法用的情况,这个直接pip install pypiwin32 就好。
b) 安装验证。
scrapy genspider baidu www.baidu.com 建立一个爬百度的爬虫。
scrapy crawl baidu
成功爬取数据。
c) Scrapy项目创建:
首先进入要创建项目的目录:cd xxx
然后进行创建:scrapy startproject demo1(项目名字是demo1)
进入项目目录,进行抓取目标的设置:cd demo1;
scrapy genspider demo1demo quotes.toscrape.com
上面的两步设置好了之后,就有如下结构:
然后我使用的pycharm编译器,,,在命令行。这里
输入命令进行爬取,
注意,,,我在生成的文件中使用了中文注释,然后就报编码错误,所以文件汇总得保证英文环境。
二、 Scrapy基本使用
经过如上的折腾,scrapy总算是可以大概跑起来了,接下来我们来看看怎么使用(emmmm,说实话我也用的不好,说个大概吧,就是记录下这个磨人的小demo)。
好,我们从使用的第一步说起,首先,设置爬取网址:
(打码真好看,^_<)
然后就是函数回调,scrapy.Request()方法,这个方法就是scrapy爬虫的核心,第一个参数是访问的url,第二个是回调函数,就是访问后返回了信息就会调用的函数,这个函数需要自己写,随便写一个,但是参数必须有response,那个这个函数里面就可以使用这个response了,这个response就是返回的响应,可以打印respons.text,得到的结果就是网页的数据,于是,我们要做的就是解析这个网页数据。那么这个网页数据怎么解析呢?好了,看看图吧,说着太抽象了。
如上,这些方法透过dom树来解析,然解析完了,拿到相应的连接可以继续爬。诶呀,这个部分也就没什么说的了。
三、 Scrapy文件说明。
这就是整个scrapy的文件,init不说(说不好,自己菜)那么middlewares是什么?是中间件,在里面写一些中间调用的类,这个我不做强行解释,毕竟我就懂个大概,出问题我也不会调。Pipelines这个呢是用来写数据库什么的,最后一个settings,一看就知道是设置,比如设置延迟,可以在里面写,当然有些常量也可以在里面写,
看清楚了,头也要在里面写,请求头。,emmmm就这些。
四、 Scrapy的使用注意。(就是我该注意的,跟其他人没关系,毕竟我是新手)
对了这个爬虫我是在教程里面抄的,自己根据需求做了小小的修改,也就大概懂,呸,大概都没有。教程里面是通过什么维护了一个cookie池,买了几百个小号轮流抓,我就没有那么有钱,没买小号,所以,我就一个cookie,但是也得模仿别人去cookie池子里面拿,不然跑不起我还不会解,于是我就用springboot(这是java的一个微服务架构)搭了个简单的服务器,然后我每次请求这个服务器就返回一个cookie的json串给我,那么我就可以肆无忌惮的使用他了。一个cookie我抓了200个数据就被封Ip了,好尴尬呀,为了做一个文明了爬虫,我设置了延迟,这样没有被封号,真是惊险呀,time.sleep(),线程睡眠。
五、 爬取数据处理。
这个没必要说的,不是scrapy,因为是一个demo,所以就在这里记录下,我爬的时候使用.json文件保存,因为json最整齐,没有乱码,我很喜欢。
那么对于json文件的处理,那就简单了,直接读,然后使用字典类型算了截个小图把,废话就不说了
嗯嗯,然后就可以了,真是劳累的几天呀。