专栏首页JAVAandPython君Python|初识scrapy爬虫

Python|初识scrapy爬虫

1

说在前面的话

JAP君在前面也是写过一些小爬虫的,其实那些都是爬虫文件。在学习scrapy之前我们得弄清楚爬虫文件和爬虫项目的区别,其实也非常容易理解,爬虫文件顾名思义就是单个的文件来写的爬虫,爬虫项目顾名思义就是一个大型的爬虫毕竟都称之为项目了,我们大家都知道项目是不可能只有单个文件的,它是由许多的文件组成并且每个文件之间有着很大的关联。

scrapy就是这么一个写爬虫项目的框架,怎么去玩它呢?今天JAP君带着大家一步一步来。

2

打仗首先得要有武器---scrapy框架的安装

其实安装scrapy特别的简单,就一句话的事。首先同时按windows键+R,然后输入cmd,最后在cmd中输入pip install scrapy .

由于JAP君用的是windows10开发只要这么简单几步就行了,但是JAP君从网络上也了解到其他的系统安装也有许多坑,但是win10安装也可能有坑,当然有坑的话可以加我们讨论群进行解决。

可是很多朋友还是不知道到底有没有安装成功,这时你仍然在cmd窗口输入scrapy命令,若有如下图的反应,那么恭喜你安装成功,可以好好玩耍了

3

有了武器要知道怎么用它---scrapy的常用指令

我们把scrapy安装成功后,该怎么去用了?没啥感觉啊!接下来我们就正式开始接触scrapy了!

其实我们的scrapy的操作都是通过命令行来进行的,有些什么命令呢?

1.scrapy -h (查看所有命令)

从这里我们可以看到scrapy的大部分命令,例如上面的version,我们就可以如下图输入:

2.scrapy startproject spider_name (创建一个项目工程)

这里我要说明一下,我们使用这个命令之前需要切换到我们自己建的一个文件夹里,然后再输入这串命令,就会在相应的文件夹中创建这个工程。

大家可以看我的命令输入,我首先是切换到我自己创建的scrapydemo的文件夹中,然后输入 scrapy startproject ceshi1 ,这个ceshi1是大家自己定义的。

3.scrapy genspider name domain (构建爬虫)

估计大家对domain有点懵逼,domain就是你想要爬取的域名,先来看一下一个例子吧。

大家会注意到,我使用这个命令是在我们的项目目录里面,因为我们是要在这个项目里面去构建这个爬虫,首先ceshi是我们自己定义的名字,baidu.com是我们要爬取的域名,大家这里估计又会疑惑为啥不是http://www.baidu.com?其实http这个东西是协议,而www是属于万维网也不是域名的一部分,所以这里我们直接输入baidu.com即可。

至于这串代码的具体体现,下面我会说的。

4.scrapy crawl name (运行爬虫,带log日志)

scrapy crawl name --nolog (运行爬虫,不带log日志)

这个命令咱们到后面来解释,因为这个需要我们去写一个简单的爬虫,大家只要记住运行爬虫就用它两。

4

创建项目之后是个啥样呢?

通过上面的命令scrapy startproject ceshi1 我们成功的建立了第一个scrapy爬虫项目,我们来看看到底有些啥?

ceshi1文件夹就是和我们创建是输入的名字是相同的

scrapy.cfg:爬虫项目的配置文件

我们在深入一下ceshi1文件夹

第一个文件夹:不必多说,一个缓存文件夹

第二个文件夹:就是我们爬虫的代码所在地

__init__.py:爬虫项目的初始化文件,用来对项目做初始化工作。

items.py:爬虫项目的数据容器文件,用来定义要获取的数据。

pipelines.py:爬虫项目的管道文件,用来对items中的数据进行进一步的加工处理。

settings.py:爬虫项目的设置文件,包含了爬虫项目的设置信息。

middlewares.py:爬虫项目的中间件文件

然后我们再次深入spiders文件夹

在这里我们发现了我们之前通过scrapy genspider ceshi baidu.com所生成的ceshi.py的文件。

其实这个项目我们可以用pycharm进行打开并且可以用pycharm进行编写项目,下次带大家实战一个项目的时候会看到的。

5

结尾

我们刚刚初识了一下scrapy框架的一些指令和文件夹,相信大家还是有一点点感觉了,下一篇我会带着大家利用scrapy框架去实战一个爬虫项目。

本文分享自微信公众号 - JAVAandPython君(JAVAandPythonJun)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Robot Framework 源码解析(1) - java入口点

    一直很好奇Robot Framework 是如何通过关键字驱动进行测试的,好奇它是如何支持那么多库的,好奇它是如何完成截图的。所以就打算研究一下它的源码。

    yuanyuan
  • numpy小结

    numpy是进行科学运算不可或缺的工具,很多其他科学计算的库也是基于numpy的,比如pandas

    opprash
  • 包教包会!7段代码带你玩转Python条件语句(附代码)

    [ 导 读 ]条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向。所谓布尔表达式,即对某个对象进行布尔运算,产生一个bool值。条件语...

    数据派THU
  • Robot Framework源码解析(2) - 执行测试的入口点

    在上一章我们提到Java的命令行入口其实最终还是转到了其它入口点,例如robot.run的run_cli(mytests.robot)

    yuanyuan
  • phpstorm运行本地PHP服务器,实现小程序可以访问的PHP后台

    通过效果图我们可以看出来,我们的小程序可以成功的访问到我们的后台数据,而这个后台就是用PHP搭建的一个本地服务器。

    编程小石头
  • 爬虫篇| 爬取百度图片(一)

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用...

    用户6029108
  • python爬取知乎话题图片

    什么是网络爬虫(也叫网络蜘蛛)?简单来说,是一种用来自动浏览万维网程序或脚本(网络爬虫的典型应用就是我们所熟知的搜索引擎)。既然如此,那么我们也可以写一个程序,...

    编程珠玑
  • Pandas 数据分析技巧与诀窍

    Pandas是一个建立在NumPy之上的开源Python库。Pandas可能是Python中最流行的数据分析库。它允许你做快速分析,数据清洗和准备。Pandas...

    AiTechYun
  • 数据科学篇| Pandas库的使用(二)

    在数据分析工作中,Pandas 的使用频率是很高的,一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很...

    用户6029108
  • Python 内存分配时的小秘密

    Python 中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。

    Python猫

扫码关注云+社区

领取腾讯云代金券