初识爬虫 - Scrapy 框架入门

目录

1、简介

2、环境配置

3、工程创建(中间有坑)

4、测试 - 爬取百度首页

 


1、简介

爬虫程序是数据采集技术领域的一个具象表现形式,其具体主要应用在对网络数据的获取。除了爬虫外,数据采集还有传感器数据采集、数据库及资源文件采集等很多的方式。爬虫编写的常见方式及常用模块库(框架):原生编写( Urllib 系列模块 ,requests模块 ,Re模块),成熟框架(Scrapy爬虫框架 ,BS4爬虫框架)。

scrapy 框架的工作原理:

scrapy 框架是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

所谓网络爬虫,就是一个在网上随处或定向抓取数据的程序,更专业的描述就是,抓取特定网站网页的 HTML 或其他(如 JSON)数据。抓取网页的一般方法是定义一个入口页面,然后页面上都会有其他页面的URL,于是从当前页面获取到这些 URL 加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。

 

2、环境配置

由于Scrapy框架不是Python的标准模块,因此我们需要使用pip完成Scrapy模块的本地下载和安装,这个过程很简单,只需在Dos控制台执行以下命令即可(特别强调,先安装 Twisted模块库):

需要注意的是,在安装 python 的一些模块库的时候,最好先去 python 的虚拟环境里去装,而不是直接在电脑上的命令行模式下安装,因为 python 是通过虚拟环境来隔离不同的开发环境的,每一个都是独立的。下面说下安装流程:

我电脑上是已经有  Twisted模块 了:

我这截的图是都安装过的,scrapy 也安装过了,没有安装的这两个是都没有的,但流程都一样,具体如下:

打开我们 pycharm 的默认设置,找到需要配置的环境,复制路径:

接下来,我们去电脑上找到其路径:

再接着,打开我们的命令行模式,进入新复制的目录文件路径:

进入虚拟环境后,我们要进入   Twisted 模块 所在的目录下安装(没有的话,网盘获取,32位和64位的都有 :提取码:sgxu):

安装好  Twisted 模块后,接着使用 pip3 install –U scrapy 命令安装 scrapy 模块,安装好后重新打开设置中的环境,发现有 Twisted 和 scrapy 模块后,就表示已经安装好了。

 

3、工程创建(中间有坑)

先找到我们 pycharm 下将要使用的目录路径:

点击进入对应电脑上的目录下

复制目录路径,打开电脑命令行模式,进入该路径下创建工程,语法是:

scrapy startproject 项目名

如图所示:

这是报错了,还需要我们再安装一个文件(我也是出错了去找的解决方法,只有这个命令,没有解释为什么,我也去找了找相关解释,但没找到,也就不敢随意下结论,先记着这样去解决,以后若是知道了,再来补充):

pip install -I cryptography

//必须 pip ,不能是 pip3

然后我们重新执行下创建项目:

之后我们便可以看到 pycharm 中其项目目录下多了很多文件(在命令行模式下我们也能够看见工程的结构,需要语句: tree /f),这就表示工程已经初步建好了:

 

4、测试 - 爬取百度首页

接下来需要我们去创建核心爬虫脚本程序,需要我们先进入刚才创建的工程目录下,然后创建脚本程序,语法是:

scrapy genspider 爬虫脚本名称 访问网站的域名

如图:

创建好后,就能够在 pycharm 中 spiders 目录下找到我们刚刚创建的文件

接下来,我们可以去测试一下,当前爬虫程序能否去连接到目标网站,在电脑命令行模式中输入:

scrapy shell 网站Url地址

如图所示:

到现在,我们的爬虫程序就已经写好了,我们能开始在里面写代码去爬取数据了,接下来我们创建一个脚本程序去跑我们这个爬虫框架,注意脚本文件位置:

在脚本文件中,我们调用刚才的爬虫程序:

from scrapy.cmdline import execute

execute(['scrapy','crawl','jobSpider'])

我们运行脚本程序去跑爬虫程序,但这里可能会出现现错误,至于怎么解决的我还是很迷,当时老师讲的时候这部分就是出错后,一直说是 pywin32 的问题,说是没装,但虚拟环境下是有的,之后一番迷惑操作后莫名又好了。。。我在写的时候也是出现了错误,我就一直在虚拟环境下装 pywin32 (我也看我的环境下是已经有的),后来也学老师在 pycharm 下去安装 pywin32 :

之后便也尝试了几次脚本程序,最后也不知道咋的就成功了(蜜汁行为。。):

现在最后一步就是去改我们的配置文件 :settings 文件

至于改这些文件有什么用,当时我们那个老师讲的时候也有些含糊,就没太听进去,大致就是这些文件不改的话,相当于咱们的爬虫程序不工作,默认的话是关闭的,所以需要我们去改,至于具体这些文件有什么用,大家感兴趣的可以去网上查。

之后在我们的爬虫程序中写入爬取百度的操作代码,这边我截下图,简单说明下:

之后我们打开生成的 baidu.html 文件,用浏览器运行后发现就是我们刚获取的百度首页。


到现在我们的框架就已经弄好了,也用了百度首页去测试,都是没问题的,后面我们就能够用框架去爬取我们所需要的内容了;但像一些简单的网页爬取,我们可以不用非要建一个框架去使用,框架是为了我们之后对爬取的数据进行分析,整理,持久化入库等操作会比较方便,如果仅是一些简单内容,就还是别用框架了,我们从上面也能看出,建一个框架还是比较费事情的。我的另一篇博客,没用框架去爬取,就是简单的一个 requests 库的使用,见链接:小小爬虫

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值