Scrapy爬虫小demo总结

Posted luohuayu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy爬虫小demo总结相关的知识,希望对你有一定的参考价值。

一、 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文件的处理,那就简单了,直接读,然后使用字典类型算了截个小图把,废话就不说了

 

嗯嗯,然后就可以了,真是劳累的几天呀。

以上是关于Scrapy爬虫小demo总结的主要内容,如果未能解决你的问题,请参考以下文章

02.Scrapy-Demo

Scrapy爬虫Demo 爬取资讯分类

Python爬虫之Scrapy框架系列——创建并运行你的第一个Scrapy demo项目

Python爬虫之Scrapy框架系列——创建并运行你的第一个Scrapy demo项目

分布式爬虫Scrapy_redis原理分析并实现断点续爬

如何运行简单的scrapy