手把手带你搭建推荐系统
黄鸿波
谷歌开发者专家,知名游戏公司技术专家
3434 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
手把手带你搭建推荐系统
15
15
1.0x
00:00/00:00
登录|注册

07|数据获取:什么是Scrapy框架?

你好,我是黄鸿波。
上一节课我们讲解了什么是爬虫以及爬虫的基本原理,从这节课开始,我们就要实际地去爬取一些网络上的内容,为后续推荐系统的使用做准备。
这节课我们来深入了解一下 Python 中的常见爬虫框架:Scrapy 框架。我们将学习什么是 Scrapy 框架、它的特点是什么以及如何安装和使用它。

Scrapy 框架概览

Scrapy 是一个适用于 Python 的快速、高层次的屏幕抓取和 Web 抓取框架,用于抓取 Web 站点并从页面中提取结构化的数据。它也提供了多种类型爬虫的基类,如 BaseSpider、Sitemap 爬虫等。我们可以很方便地通过 Scrapy 框架实现一个爬虫程序,抓取指定网站的内容或图片。
下面是 Scrapy 框架的架构图。
通过这张图我们可以看到,Scrapy 框架总共分成了下面七个部分。
Scrapy Engine(Scrapy 引擎)。
Scheduler(调度器)。
Downloader(下载器)。
Spiders(爬虫)。
Item Pipline(管道)。
Downloader Middlewares(下载中间件)。
Spider Middlewares(Spider 中间件)。
接下来,我们来看看这七个部分的具体含义,以及它们是如何协作的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Scrapy框架是一个适用于Python的快速、高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取结构化的数据。它提供了多种类型爬虫的基类,如BaseSpider、Sitemap爬虫等。Scrapy框架的架构包括Scrapy Engine、Scheduler、Downloader、Spiders、Item Pipline、Downloader Middlewares和Spider Middlewares。工作流程主要包括爬虫程序向引擎索要待爬取的URL、调度器将URL加入队列、下载器下载请求并返回response、Spider处理response并提取数据、以及Item Pipeline存储数据。安装Scrapy框架需要先安装Anaconda环境,然后使用pip install scrapy命令即可。Anaconda环境可以看作是一个常用的扩展库的集合,可以轻松地管理扩展库和创建多个虚拟环境。 在文章中,作者详细介绍了如何使用Scrapy框架创建爬虫开发环境。首先,作者指导读者在指定目录下创建Scrapy工程,并将项目导入到IDE环境中。然后,作者介绍了如何创建爬虫程序,包括创建爬虫文件和安装ChromeDriver插件。最后,作者展示了如何编写主文件并运行爬虫程序。通过本文,读者可以了解Scrapy框架的基本原理和主要模块,以及在Anaconda环境中创建和运行Scrapy框架的基本步骤。 总的来说,本文通过实际操作的方式,帮助读者快速了解了Scrapy框架的基本概念和使用方法,为读者提供了一份实用的技术指南。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你搭建推荐系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • Geek_79da7f
    关于安装ChromeDriver, mac上面一个命令行就解决了: brew install chromedriver

    作者回复: 同学你好,感谢您提交的信息。

    2023-09-18归属地:美国
    2
    2
  • 未来已来
    遇到一个报错:Failure while parsing robots.txt. 解决:把 settings.py 文件的 `ROBOTSTXT_OBEY = True` 改为 `ROBOTSTXT_OBEY = False` 即可

    作者回复: 是的,如果是被robot文件给挡住了,可以通过修改ROBOTSTXT_OBEY 来改变爬虫的规则,使其不遵循robots协议。

    2023-05-03归属地:广东
    2
    1
  • peter
    请教老师几个问题啊 Q1:网站后端是用Java开发的,可以用Scrapy来抓取数据吗?相当于两种语言的混合使用了。 Q2:Anaconda安装的最后一步提示是“python3.9”,为什么创建虚拟环境的时候python版本是3.7? Q3:安装的这个Anaconda,是正常的python开发环境吧。比如用来学习python,编码等。 Q4:conda list命令列出的scrapy,其build channel是py37XXX, 其中的37是python版本吗?

    作者回复: 同学,你好,我来回答你的问题: A1:Scrapy是Python的爬虫框架,不是Java,所以不能直接用Scrapy来抓取Java开发的网站,但是你可以看看在Java上有没有想过的框架,原理都是一样的。 A2:因为Anaconda安装程序默认使用了Python 3.9,但在创建虚拟环境时选择了Python 3.7,所以你看到的虚拟环境版本是3.7,虚拟环境的版本可以独立于主环境的,这个没有影响。 A3:是的,是正常的Python开发环境,可以直接使用。 A4:是的,conda list命令列出的scrapy中的build channel中的37表示Scrapy依赖的Python版本为3.7。在安装Scrapy时需要使用与Python版本兼容的Scrapy版本。

    2023-04-24归属地:北京
    3
    1
  • Weitzenböck
    我在执行main函数的时候出现了这个错误"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 93: invalid continuation byte",是不是https://sina.com.cn这个网站没有用utf-8的编码格式啊

    作者回复: 应该是掺杂了特殊字符,你可以再检查下

    2023-06-14归属地:江苏
    5
  • 地铁林黛玉
    爬取的这些数据我们需要通过哪些方法知道是不是违法的呢?

    作者回复: 同学你好。一般来讲,在settings.py文件里有一个参数叫ROBOTSTXT_OBEY,这个文件默认为True,也就是遵循网站的robots协议,如果在true的状态下请求被拒绝,说明不能去爬取。当然,你也可以设置为Fales,也就是无视它的规则进行爬取,那么这个时候,其实就有一点违规的意思了。

    2023-05-04归属地:北京
    4
  • GhostGuest
    更新建议改为一天一更,现在这节奏太慢了,前摇半天

    作者回复: 同学你好,非常感谢你对我的课程的关注和反馈。我理解你想尽快得到更多的内容,但我的更新频率已经是我的最大努力了,因为我需要花费时间和精力来研究和准备每个更新的内容。在你们学习课程的同时,我也在每天写课、改稿和回复同学的留言到深夜。 另外,我需要时间尽量保证内容和代码的精细化,保证其质量,这样对读者才是最好的回馈。

    2023-04-24归属地:上海
    2
  • 叶圣枫
    我的macbook上会报这个错: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2u 20 Dec 2019 解决方案是降级urllib3: pip install urllib3==1.26.6
    2024-01-12归属地:上海
    2
  • 老师出现这个错误是什么原因
    2024-02-18归属地:浙江
  • 悟尘
    chrom 114 版本以上的 下载chromedriver在这里:https://registry.npmmirror.com/binary.html?path=chrome-for-testing/
    2023-12-11归属地:北京
  • 悟尘
    [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET https://www.sina.com.cn/> from <GET https://sina.com.cn> [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.sina.com.cn/> (referer: None) 这算是连上了?
    2023-12-11归属地:北京
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部