Python爬虫之Scrapy框架爬虫实战

Python爬虫中Scrapy框架应用非常广泛,经常被人用于属于挖掘、检测以及自动化测试类项目,为啥说Scrapy框架作为半成品我们又该如何利用好呢 ?下面的实战案例值得大家看看。

目录:

1、Scrapy框架之命令行

2、项目实现

Scrapy框架之命令行

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

Scrapy爬虫的常用命令:

scrapy[option][args]#command为Scrapy命令

常用命令:(图1)

Python爬虫之Scrapy框架爬虫实战_第1张图片

至于为什么要用命令行,主要是我们用命令行更方便操作,也适合自动化和脚本控制。至于用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:(图2)

Python爬虫之Scrapy框架爬虫实战_第2张图片

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

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

2、新建Scrapy

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

scrapy startproject newdemo

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

Python爬虫之Scrapy框架爬虫实战_第3张图片

3、配置Spider爬虫

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

scrapy genspider demo python123.io

相关运行结果如下:(图4)

Python爬虫之Scrapy框架爬虫实战_第4张图片

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

Python爬虫之Scrapy框架爬虫实战_第5张图片

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

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、运行项目

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

scrapy crawl demo

相关运行结果如下:(图6)

Python爬虫之Scrapy框架爬虫实战_第6张图片
直到最后在newdemo文件目录下出现demo.html文件,说明此项目运行成功。

打开demo.html文件显示如下:(图7)

Python爬虫之Scrapy框架爬虫实战_第7张图片
Python爬虫系列,持续更新…

你可能感兴趣的:(python,爬虫,scrapy,爬虫实战,数据挖掘)