0

0

Python爬虫-scrapy介绍及使用

angryTom

angryTom

发布时间:2019-11-29 15:56:29

|

5429人浏览过

|

来源于博客园

转载

scrapy的流程

1.png

其流程可以描述如下:

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

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

立即学习Python免费学习笔记(深入)”;

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

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

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

推荐学习:Python视频教程  

注意:

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

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

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

scrapy中每个模块的具体作用

2.png

 1.scrapy项目实现流程

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

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

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

保存数据:pipeline中保存数据

2. 创建scrapy项目

命令:scrapy startproject +

示例:scrapy startproject myspider

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

3.png

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

● USER_AGENT 设置ua

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

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

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

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

● DEFAULT_REQUEST_HEADERS 设置默认请求头

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

● DOWNLOADER_MIDDLEWARES 下载中间件

创建爬虫

紫东太初
紫东太初

中科院和武汉AI研究院推出的新一代大模型

下载

命令:scrapy genspider + +

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

4.png

完善spider

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

5.png

注意:

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

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

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

● spider中的parse方法必须有

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

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

数据传递到pipeline

6.png

为什么要使用yield?

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

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

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

注意:

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

6. 完善pipeline

7.png

 8.png

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

本文来自 python教程 栏目,欢迎学习!  

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python Scrapy 网络爬虫实战视频教程
Python Scrapy 网络爬虫实战视频教程

共16课时 | 5.5万人学习

Python 并发编程实战
Python 并发编程实战

共12课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号