Python爬虫系列:Scrapy框架爬虫实战~

2021-07-29 11:19:34 浏览数 (1)

之前大概了解了Scrapy框架,作为半成品的它,我们该如何更好的利用呢?

小编这里准备给大家演示一遍。

目录:

  1. Scrapy框架之命令行
  2. 项目实现

Scrapy框架之命令行

Scrapy是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。

Scrapy爬虫的常用命令:

代码语言:javascript复制
scrapy<command>[option][args]#command为Scrapy命令

常用命令:

命令

说明

格式

startproject

创建一个新工程

scrapy startproject<name>[dir]

genspider

创建一个爬虫

scrapy genspider [option]<name><domain>

settings

获得爬虫配置信息

scrapy settings [options]

crawl

运行一个爬虫

scrapy crawl<spider>

list

列出工程中所有爬虫

scrapy list

shell

启动URL调试命令行

scrapy shell [url]

至于为什么要用命令行,主要是我们用命令行更方便操作,也适合自动化和脚本控制。至于用Scrapy框架,一般也是较大型的项目,程序员对于命令行也更容易上手。

首先介绍一下相关文件的作用,方便我们到时候修改相关代码。

scrapy.cfg:部署Scrapy爬虫的配置文件

demo:Scrapy框架的用户自定义Python代码

其中,在项目文件根目录里面的demo文件中,有如下文件以及相关的作用:

__init__.py:初始化脚本

items.py:Items代码模板(继承类)

middlewares.py:Middlewares代码模板(继承类)

Pipelines.py:Pipelines代码模块(继承类)

settings.py:Scrapy爬虫的配置文件(优化需要改动)

spiders:代码模板目录(继承类)

在Spider文件目录下包含如下文件:

__init__.py:初始文件。无需修改

__pycache_:缓存目录,无需修改

项目实现

接下来我们开始第一次的实操,大致步骤如下:

1.建立一个Scrapy爬虫工程

2.在工程中产生一个Scrapy爬虫

3.配置产生的spider爬虫

4.运行爬虫,获取网页

1.新建项目

首先,我们得先新建一个项目文件。

这里需要我们打开Git,至于Git的安装以及简单使用我们之前在折腾博客时有了解过:用Hexo Github Pages搭建私人博客(第二站)

首先打开Git定位到你要爬虫项目的地址:

比如小编我是要定位到E盘,则输入cd E:

定位到目标地址后,我们便可以开始新建项目啦~

To:dir命令为显示目录和子目录的列表.

2.新建Scrapy

接下来我们输入如下命令新建一个名为newdemo的爬虫项目:

代码语言:javascript复制
scrapy startproject newdemo

项目生成后我们可以看见在根目录生成了一个项目文件,也是叫做newdemo,那么接下来我们需要对其中的文件进行编辑。

3.配置Spider爬虫

接下来我们需要输入如下命令:

代码语言:javascript复制
scrapy genspider demo python123.io

相关运行结果如下:

然后会在newdemospiders目录下生成一个demo.py文件 其中,parse(用于处理响应,解析内容形成字典,发现新的URL爬取请求)

修改demo文件里面的代码,修改后如下:

代码语言:javascript复制
import scrapy

#继承Scrapy.Spider类的子类
class DemoSpider(scrapy.Spider):
    name = 'demo'#当前爬虫命名为demo
    #allowed_domains = ['python123.io'] #用户在命令行提交给爬虫的域名
    start_urls = ['http://python123.io/ws/demo.html']#爬取内容的初始页面

#parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求
    def parse(self, response):
        fname=response.url.split('/')[-1]
        with open (fname,'wb') as f:
          f.write(response.body)
        self.log('save file %s' % name)

4.运行项目

最后一步便是运行该爬虫项目,命令为:

代码语言:javascript复制
scrapy crawl demo

相关运行结果如下:

直到最后在newdemo文件目录下出现demo.html文件,说明此项目运行成功。

打开demo.html文件显示如下:

Python爬虫系列,未完待续...

0 人点赞