美文网首页
Python爬虫-scrapy介绍及使用

Python爬虫-scrapy介绍及使用

作者: Exist_3ebb | 来源:发表于2019-12-03 17:07 被阅读0次

scrapy的流程

其流程可以描述如下:

● 调度器把requests–>引擎–>下载中间件—>下载器

● 下载器发送请求,获取响应---->下载中间件---->引擎—>爬虫中间件—>爬虫

● 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—>调度器

● 爬虫提取数据—>引擎—>管道

● 管道进行数据的处理和保存

推荐学习:《0基础 Python 入门教程

注意:

图中绿色线条的表示数据的传递

注意图中中间件的位置,决定了其作用

注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互

scrapy中每个模块的具体作用

1.scrapy项目实现流程

创建一个scrapy项目:scrapy startproject 项目名

生成一个爬虫:scrapy genspider 爬虫名 允许爬取的范围

提取数据:完善spider,使用xpath等方法

保存数据:pipeline中保存数据

2. 创建scrapy项目

命令:scrapy startproject +<项目名字>

示例:scrapy startproject myspider

生成的目录和文件结果如下:

settings.py中的重点字段和内涵

● USER_AGENT 设置ua

● ROBOTSTXT_OBEY 是否遵守robots协议,默认是遵守

● CONCURRENT_REQUESTS 设置并发请求的数量,默认是16个

● DOWNLOAD_DELAY 下载延迟,默认无延迟

● COOKIES_ENABLED 是否开启cookie,即每次请求带上前一次的cookie,默认是开启的

● DEFAULT_REQUEST_HEADERS 设置默认请求头

● SPIDER_MIDDLEWARES 爬虫中间件,设置过程和管道相同

● DOWNLOADER_MIDDLEWARES 下载中间件

创建爬虫

命令:scrapy genspider +<爬虫名字> + <允许爬取的域名>

生成的目录和文件结果如下:

完善spider

完善spider即通过方法进行数据的提取等操做:

注意:

● response.xpath方法的返回结果是一个类似list的类型,其中包含的是selector对象,操作和列表一样,但是有一些额外的方法

● extract() 返回一个包含有字符串的列表

● extract_first() 返回列表中的第一个字符串,列表为空没有返回None

● spider中的parse方法必须有

● 需要抓取的url地址必须属于allowed_domains,但是start_urls中的url地址没有这个限制

● 启动爬虫的时候注意启动的位置,是在项目路径下启动

数据传递到pipeline

为什么要使用yield?

● 让整个函数变成一个生成器,有什么好处呢?

● 遍历这个函数的返回值的时候,挨个把数据读到内存,不会造成内存的瞬间占用过高

● python3中的range和python2中的xrange同理

注意:

yield能够传递的对象只能是:BaseItem,Request,dict,None

6. 完善pipeline

pipeline在settings中能够开启多个,为什么需要开启多个?

● 不同的pipeline可以处理不同爬虫的数据

● 不同的pipeline能够进行不同的数据处理的操作,比如一个进行数据清洗,一个进行数据的保存

pipeline使用注意点

● 使用之前需要在settings中开启

● pipeline在setting中键表示位置(即pipeline在项目中的位置可以自定义),值表示距离引擎的远近,越近数据会越先经过

● 有多个pipeline的时候,process_item的方法必须return item,否则后一个pipeline取到的数据为None值

● pipeline中process_item的方法必须有,否则item没有办法接受和处理

● process_item方法接受item和spider,其中spider表示当前传递item过来的spider

相关免费资料分享(点击即可免费观看~)

1、0基础入门python

http://www.makeru.com.cn/course/details/1804.html?s=96806

2、一堂课快速认识python数据分析

http://www.makeru.com.cn/live/5020_1655.html?s=96806

3、一节课快速认识人工智能必备语言:python

http://www.makeru.com.cn/live/5020_1635.html?s=96806

142244252 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!!

相关文章

  • 【day 3】爬虫工程化及Scrapy框架初窥

    介绍 本次主要简单介绍Python和爬虫的关系,以及将要使用的Scrapy框架的工作流程。 Python适合做爬虫...

  • Python爬虫-scrapy介绍及使用

    scrapy的流程 其流程可以描述如下: ● 调度器把requests–>引擎–>下载中间件—>下载器 ● 下载器...

  • python 爬虫框架Scrapy使用方法

    Python作为脚本语言,功能非常强大,这里介绍一下爬虫框架Scrapy有安装及使用方法介绍。 一、安装篇 pyt...

  • Python3 爬虫

    python3 如果用爬虫框架的话,可以使用Scrapy,文档 如下Scrapy教程本文主要介绍一下urllib和...

  • Mac 安装Scrapy

    刚学习完Python,准备使用Scrapy练习爬虫。记录一下,在Mac环境下安装Scrapy的步骤及初始工程。 打...

  • 09-Scrapy基础

    一. Scrapy 框架介绍 Scrapy架构图 安装Scrapy 二. 使用Scrapy 使用爬虫可以遵循以下步...

  • 认识Scrapy框架

    开发python,从程序的复杂程度可分为:爬虫项目和爬虫文件。 使用Scrapy可以提高开发效率。 Scrapy安...

  • Scrapy初步

    安装 概述 scrapy是python下的一个爬虫(spider)库,据说也是目前使用最广的爬虫库 scrapy包...

  • scrapy实战

    一.scrapy scrapy是一个爬虫框架 使用python3安装pip3 install scrapy 如果你...

  • Scrapy资料

    1. Scrapy 介绍 经常发现使用python编写爬虫的相关文章,可以使用urllib2便可以简单的实现(Py...

网友评论

      本文标题:Python爬虫-scrapy介绍及使用

      本文链接:https://www.haomeiwen.com/subject/ozxhgctx.html