博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scrapy爬虫小demo总结
阅读量:5221 次
发布时间:2019-06-14

本文共 1638 字,大约阅读时间需要 5 分钟。

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

 

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

转载于:https://www.cnblogs.com/luohuayu/p/8974476.html

你可能感兴趣的文章
IOS
查看>>
移动端唤起QQ聊天
查看>>
Eigen库的使用笔记
查看>>
LeetCode 604. Design Compressed String Iterator (设计压缩字符迭代器)$
查看>>
简明Python教程:模块
查看>>
Github: 从github上拉取别人的源码,并推送到自己的github仓库
查看>>
Windows下cwRsync搭建步骤
查看>>
sshpass+ssh-copy-id免交互分发公钥到多台服务器
查看>>
MVC的概念
查看>>
【bzoj1042】[HAOI2008]硬币购物-递推与动规-容斥原理
查看>>
bzoj 4407 于神之怒加强版 (反演+线性筛)
查看>>
导弹拦截
查看>>
7.数组
查看>>
帮助你使用数据库方式访问JSON数据的javascript类库-TaffyDB
查看>>
正则表达式
查看>>
VS2015使用scanf报错解决方案
查看>>
003.安装nginx(lnmp)
查看>>
转--简单工厂模式 Simple Factory
查看>>
linux 编译安装python3
查看>>
Hangover POJ - 1003
查看>>