zoukankan      html  css  js  c++  java
  • 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 多个爬虫运行
    scrapy不抓取重复的网页解决办法
    centos7 安装mysql
    20个免费和开源数据可视化工具
    转载 CSDN 谈谈我对证券公司一些部门的理解(前、中、后台)
    scrapy 教程
    django 常见错误汇总
    python 常见错误
    python 基础知识整理
    使用SQL语法来查询Elasticsearch:Elasticsearch-SQL插件
  • 原文地址:https://www.cnblogs.com/luohuayu/p/8974476.html
Copyright © 2011-2022 走看看