Python爬虫之Scrapy框架(案例练习)

Python爬虫之Scrapy框架(案例练习)Scrapy 是一个为了爬取网站数据 提取结构性数据而编写的应用框架 可以应用在包括数据挖掘 信息处理或存储历史数据等一系列的程序中 其最初是为了页面抓取 更确切来说 网络抓取 所设计的 也可以应用在获取 API 所返回的数据 例如 AmazonAssoci 或者通用的网络爬虫 Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架 该框架使用纯 Python 语言编写 Scrapy 框架应用广泛 常用于数据采集 网络监测 以及自动化测试等

活动地址:CSDN21天学习挑战赛

@作者 : SYFStrive
@创建时间 : 2022/8/9 22:01
?: Scrapy案例
?: 点击跳转到上一篇Scrapy续文?
?: 感谢支持,学习累了可以先看小段由小胖给大家带来的街舞?
请添加图片描述
在这里插入图片描述












简介

  1. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据 (例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
  2. Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架,该框架使用纯 Python 语言编写。Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等。
  3. 提示:Twisted 是一个基于事件驱动的网络引擎框架,同样采用 Python 实现。

?Scrapy使用前准备

  • 文档如?
  1. 官网文档:链接
  2. C语言中文文档:链接
  • 安装
  1. 安装语法:python -m pip install Scrapy
  2. 报错:使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple –trusted-host pypi.tuna.tsinghua.edu.cn 加包名

yield的使用

  1. 带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代
  2. yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行
  3. 简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始

Python爬虫之Scrapy框架之??爬取数据

get

案例使用的内容

涉及 单管道、多管道

单管道

?代码演示:

在这里插入图片描述

多管道(单独使用一个管道下载图片……)

?代码演示:

在这里插入图片描述

如下图(下载成功?):

在这里插入图片描述

实现多页面下载 (爬取100页内容)

?代码演示:

在这里插入图片描述

如下图(下载成功?):

在这里插入图片描述

案例总结

  1. 两个生命函数
 # 在爬虫文件开始的之前就执行的一个方法 # def open_spider(): # 在爬虫文件执行完之后 执行的方法 # def close_spider(): 
  1. 简单步骤:获取数据后 ? 使用items 定义数据结构的 ? 导入items(传递数据) ? 使用Yield返回 ? 通过pipelines管道下载数据(使用前要开启管道(item就是yield后面的book对象))
  2. 添加管道:定义管道类 ? 在settings中开启管道
  3. 注意:
    1、如果是多页下载的话 那么必须要调整的是allowed_domains的范围 一般情况下只写域名
    2、write方法必须要写一个字符串 而不能是其他的对象
    3、通过该案例检测的一点就是下载的图片目录文件是spiders下的理解如:‘./bookImg/’ + item.get(‘name’) + ‘.jpg’






post

在这里插入图片描述

效果如下:

在这里插入图片描述

Python爬虫之Scrapy框架之?爬取数据

?代码演示:

在这里插入图片描述

?代码演示:

class DianyingtiantangPipeline: def open_spider(self, spider): self.fs = open('movie.json', 'w', encoding='utf-8') def process_item(self, item, spider): # 简单理解:这里的item相当于yield movie返回值 self.fs.write(str(item)) return item def close_spider(self, spider): self.fs.close() 

如下图(下载成功?):

在这里插入图片描述

最后

Scrapy框架还未结束(待更),觉得不错的请给我专栏点点订阅,你的支持是我们更新的动力,感谢大家的支持,希望这篇文章能帮到大家

点击跳转到我的Python专栏

在这里插入图片描述

下篇文章再见ヾ( ̄▽ ̄)ByeBye

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176161.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:34
下一篇 2026年3月26日 下午10:35


相关推荐

  • javascript 数组求和_javascript数组的定义

    javascript 数组求和_javascript数组的定义eval()函数可计算某个字符串,并执行其中的的JavaScript代码。语法eval(string)string必须是一个合法的表达式和语句,否则抛出异常示例leta=[1,2,3,4,5,6,7,8,9]console.log(eval(a.join(‘+’)))//45console.log(eval(“x=10;y=20…

    2022年10月2日
    6
  • PHP的ini_set函数用法[通俗易懂]

    PHP的ini_set函数用法

    2022年2月9日
    37
  • Python requests post 请求报错:415 Unsupported Media Type

    Python requests post 请求报错:415 Unsupported Media Type本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末requestspost请求报错:415UnsupportedMediaType在使用response.post发送json数据时,出现如题所示错误,是因为User-Agent被服务器设置拒绝请求了解决方法:’content-type’:’application/json’headers={‘User-Agent’:’Dalvik/2.1.0(Linux;U;Android6.0.1;Nexus5

    2022年6月12日
    93
  • 永久取消word自动编号

    永久取消word自动编号1 打开 Word 单击 文件 按钮 2 在弹出的菜单中选择 选项 3 此时会打开一个 Word 选项 窗口 我们选择 校对 选项 然后单击 自动更正选项 按钮 4 在弹出的 自动更正 对话框中 切换到 键入时自动套用格式 选项卡 然后在 键入时自动应用 一栏中取消勾选 自动编号列表 项 并单击 确定 按钮 5 返回到 Word 选项 窗口 再次单击 确定 按钮

    2026年3月17日
    3
  • uu怎么卸载_卸载deepin引导

    uu怎么卸载_卸载deepin引导ubutun干净卸载删除wineQQ博主原本想要在ubuntu18.04安装wineQQ,在安装完成后却显示QQ版本过低无法运行,只能卸载重装,不然那个QQ标志在软件列表非常碍眼。这个是之前安装wineQQ的教程【QQ版本已过期】问题:卸载不掉该软件且网上大多数指令都过期了解决方案:在deepinwine的应用容器中,用sudoaptremove软件包主名命令来删除。比如d…

    2025年9月19日
    9
  • ElasticSearch安装&安装成windows服务

    ElasticSearch安装&安装成windows服务ElasticSearch安装&安装成windows服务

    2022年6月17日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号