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

目录:

1、Scrapy框架之命令行

2、项目实现

Scrapy框架之命令行

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

Scrapy爬虫的常用命令:

scrapy<command>[option][args]#command为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)

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

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

2、新建Scrapy

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

scrapy startproject newdemo

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

3、配置Spider爬虫

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

scrapy genspider demo python123.io

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

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

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

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

Python爬虫系列,持续更新...

Python爬虫之Scrapy框架爬虫实战的更多相关文章

  1. Python爬虫进阶(Scrapy框架爬虫)

    准备工作:           配置环境问题什么的我昨天已经写了,那么今天直接安装三个库                        首先第一步:                           ...

  2. Python网络爬虫之Scrapy框架(CrawlSpider)

    目录 Python网络爬虫之Scrapy框架(CrawlSpider) CrawlSpider使用 爬取糗事百科糗图板块的所有页码数据 Python网络爬虫之Scrapy框架(CrawlSpider) ...

  3. Python逆向爬虫之scrapy框架,非常详细

    爬虫系列目录 目录 Python逆向爬虫之scrapy框架,非常详细 一.爬虫入门 1.1 定义需求 1.2 需求分析 1.2.1 下载某个页面上所有的图片 1.2.2 分页 1.2.3 进行下载图片 ...

  4. Scrapy框架-----爬虫

    说明:文章是本人读了崔庆才的Python3---网络爬虫开发实战,做的简单整理,希望能帮助正在学习的小伙伴~~ 1. 准备工作: 安装Scrapy框架.MongoDB和PyMongo库,如果没有安装, ...

  5. 第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用

    第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用 xpath表达式 //x 表示向下查找n层指定标签,如://div 表示查找所有div标签 /x 表示向下查找一层指定的标签 ...

  6. 第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令

    第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令 Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --u ...

  7. 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...

  8. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...

  9. 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于star ...

  10. 爬虫06 /scrapy框架

    爬虫06 /scrapy框架 目录 爬虫06 /scrapy框架 1. scrapy概述/安装 2. 基本使用 1. 创建工程 2. 数据分析 3. 持久化存储 3. 全栈数据的爬取 4. 五大核心组 ...

随机推荐

  1. 尝试window10系统下使用appuim获取ios元素

    一般来说搞iOS手机的APP自动化需通过Mac电脑,但当前APP出图自动化测试平台是基于windows系统环境开发.如果因iOS APP需要再重新搭建Mac的开发及测试环境,会很大程度上浪费资源,增加 ...

  2. C++ 17 遍历文件夹图片文件进行循环操作

    #include <filesystem>using namespace std;namespace fs = std::filesystem; string path = filepat ...

  3. unity 2D 物体跟随鼠标旋转 移动

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class FollowMo ...

  4. IDEA使用fastjson1时maven引入依赖没报错,但是用不了JSONObject工具类

    删除项目下的.idea文件夹重新打开项目就行, 不知道为什么

  5. ES bool查询

    一.bool查询包含四种操作 1.must 2.must not 3.filter 4.should 二.功能 1.must 对应mysql的 and a= 2.must not 对应mysql的 a ...

  6. 在Vue项目中使用wangEditor

    wangEditor官网 封装的Editor组件 <template> <div class="editor-wrap"> <div ref=&quo ...

  7. Elasticsearch集群部署和运维命令

    Elasticsearch集群部署 下载tar包 在"https://www.elastic.co/cn/downloads/elasticsearch"页面,有 past rel ...

  8. 一个严谨的STM32串口DMA发送接收机制

    关键点: 1.一个半接收机制 2.一个是寄存器的操作顺序 参考链接: https://www.eet-china.com/mp/a167050.html

  9. Java基础之基本运算符

    基本运算符 算数运算符:+.-.*./.%.++.-- 赋值运算符:= 关系运算符:>.<.>=.<=.==.!= instanceof 逻辑运算符:&&.|| ...

  10. django文件目录

    例如主站mysite,mysite下有一个应用testapp 1.在mysite/mysite下的settings需要添加应用进去 2.在musite/mysite下的urls.py记录应用的路径 3 ...