8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)

2024-09-03
| 21页
| 455人阅读
| 67人下载
普通

内容正文:

《Python应用程序设计》 8.1 网络爬虫 1 网络爬虫的基本流程 1 网络爬虫库 2 网络爬虫框架 3 目录 使用网络爬虫框架的基本步骤 4 2 网络爬虫的基本流程 1 1.发起请求 通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应。 2.获取响应内容 如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML、Json字符串、二进制数据(图片或者视频)等类型。 网络爬虫的基本流程 1 3.解析内容 得到的内容如果是HTML,可以用正则表达式,页面解析库进行解析;如果是Json,可以直接转换为Json对象解析;如果是二进制数据,可以保存或者进一步的处理。 4.保存数据 保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。 网络爬虫库 2 requests库是一个Python的第三方库,支持丰富的链接访问功能,包括国际域名和URL获取、HTTP长连接和连接缓存、HTTP会话和cookie保持、文件分块上传、HTTP(S)代理、连接超时处理等功能。 在Windows操作系统中的cmd命令行中要先安装该库,具体命令如下: :\>pip install requests 网络爬虫库 2 requests库提供的主要函数。 函数 说明 request() 构造一个请求 get() 获取URL位置的资源 head 获取URL位置的头部信息 post 向URL位置提交POST请求 put 向URL位置提交PUT请求 patch 局部更新URL位置的资源 delete 删除URL位置存储的资源 表1 requests库的常见函数 网络爬虫库 2 下面的案例展示了使用requests库以GET请求的方式爬取百度搜索关键词python的网页。 网络爬虫框架 3 Python网络爬虫框架主要包括:Scrapy、Crawley、Portia等。Scrapy是使用Python开发的一个开源的爬虫框架,使用方便用途广泛,可用于爬虫开发、数据挖掘、网络检测和自动化测试等。它提供了URL队列、异步多线程访问、定时访问、数据库集成等多项功能,可以构建产品级的爬虫系统。 在Windows操作系统中的cmd命令行中要先安装该库,具体命令如下。 :\>pip install scrapy 网络爬虫框架 3 1.Scrapy框架中包含的组件 Scrapy的框架主要包含了引擎、调度器、下载器、管道等多个组件。 网络爬虫框架 3 2.Scrapy中的数据流基本过程 (1)引擎打开一个网站,找到处理该网站的Spider并向该Spider请求第一个要爬取的URL(s)。 (2)引擎从Spider中获取到第一个要爬取的URL并在调度器以Request调度。 (3)引擎向调度器请求下一个要爬取的URL。 (4)调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件(请求方向)转发给下载器。 网络爬虫框架 3 2.Scrapy中的数据流基本过程 (5)一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(响应方向)发送给引擎。 (6)引擎从下载器中接收到Response并通过SPIDER中间件(输入方向)发送给Spider处理。 (7)Spider处理Response并返回爬取到的Item及新的Request给引擎。 (8)引擎将(Spider返回的)爬取到的Item给ITEM PIPELINES,将(Spider返回的)Request给调度器。 网络爬虫框架 3 2.Scrapy中的数据流基本过程 (5)一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(响应方向)发送给引擎。 (6)引擎从下载器中接收到Response并通过SPIDER中间件(输入方向)发送给Spider处理。 (7)Spider处理Response并返回爬取到的Item及新的Request给引擎。 (8)引擎将(Spider返回的)爬取到的Item给ITEM PIPELINES,将(Spider返回的)Request给调度器。 使用网络爬虫框架的基本步骤 4 1.新建项目 需要在cmd命令行中进行创建,可以先进入需要创建项目的目录,然后使用命令创建,命令格式如下: scrapy startproject 项目名称 使用网络爬虫框架的基本步骤 4 2.明确目标 第二步主要是需要明确爬取的目标,完成item.py文件的编写。Item在Scrapy框架中用来定义数据的结构,它的使用方法和字典类似,不过Item相比字典多了额外的保护机制,可以避免拼写错误或者为定义字段错误。 Scrapy框架中提供了scrapy.Item用来表示实体数据。创建Item需要继承scrapy.Item类,并且定义类型为scrapy.Field的类属性。 使用网络爬虫框架的基本步骤 4 3.制作爬虫 (1)创建爬虫 创建爬虫既可以使用命令,也可以自己在spider目录中编写代码实现。下面以使用命令为例来进行说明,命令格式为: scrapy genspider 爬虫名称 “爬取域” 使用网络爬虫框架的基本步骤 4 3.制作爬虫 (2)运行爬虫 运行爬虫可以在命令方式下进入爬虫文件所在的目录,并执行如下命令: scrapy crawl 爬虫名称 爬虫名称就是在创建爬虫时确定的系统中唯一的名称。 使用网络爬虫框架的基本步骤 4 3.制作爬虫 (3)提取数据 爬取到网页源代码后,可以使用谷歌、IE等浏览器的工具观察页面的源代码,定位目标数据,分析数据的结构;然后修改爬虫类中parse()方法,将得到的数据封装成对象,再将所有的对象保存在items中。 使用网络爬虫框架的基本步骤 4 3.制作爬虫 (4)存储数据 如果要将爬取到的数据进行永久性存储,需要在运行爬虫的时候增加参数。保存的数据类型有json、jsonl、CSV和xml。例如在命令行中输入如下命令: scrapy crawl dangdang -o book.xml 则会将输出结果保存为xml文件,使用浏览器打开文件。 任务描述 任务名称:使用requests库以GET请求的方式爬取网页 使用第三方库requests爬取网站“中国铁路12306”的首页,并输出到文件中。 拓展任务 任务名称:使用Scrapy爬虫框架爬取网页信息 创建一个项目Theater,要求爬取国家大剧院的音乐资讯,包括标题、日期和简介,将爬取的信息以XML的方式进行保存。 THANK YOU 21 $$

资源预览图

8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
1
8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
2
8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
3
8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
4
8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
5
8.1 网络爬虫(课件)《Python语言程序设计基础》(大连理工出版社)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。