包虫病

首页 » 常识 » 诊断 » 爬虫实战Scrapy框架
TUhjnbcbe - 2022/4/23 17:41:00
济南白癜风医院 http://m.39.net/pf/a_5589612.html

Scrapy是用Python语言编写,通过Twisted异步网络框架提升下载速度,是一个快速、高层次的屏幕抓取和Web抓取框架,常用于数据挖掘、监测和自动化测试等。

一、Scrapy框架介绍

Scrapy内部实现了并发请求、免登录、URL去重等操作,开发者可根据自己的需求去编写部分代码,就能抓取到所需要的数据。Scrapy框架包含的组件有调度器、下载器、Scrapy引擎、项目管道、爬虫以及各中间件等。

Scrapy框架爬取流程:首先从初始URL开始,调度器会将其交给下载器(Downloader),下载器向网络服务器发送请求进行下载,得到的响应后将下载数据交给爬虫,爬虫会对网页进行分析,分析出来的结果有两种:一种是需要进一步抓取的链接,这些链接会被传回调度器,另一种是需要保存的数据,它们会被传送至项目管道,项目管道进一步对数据进行清洗、去重等处理,并存储到文件或数据库中。数据爬取过程中,Scrapy引擎用于控制整个系统的数据处理流程。

Scrapy框架内包含的各组件功能如下:

Scrapy引擎:用来控制整个系统的数据处理流程,并进行事务处理的触发。

调度器中间件:位于Scrapy引擎和调度器之间,主要用于处理Scrapy引擎发送到调度器的请求和响应。

调度器:用来接收引擎发送过来的请求,压入队列完成去重操作,并决定下一个要抓取的网站,在引擎再次请求的时候返回URL。

下载器中间件:位于Scrapy引擎和下载器之间,主要用于处理Scrapy引擎与下载器之间的请求及响应,其中代理IP和用户代理可以在这里设置。

下载器:用于下载网页内容,并将网页响应结果返回给爬虫。

爬虫中间件:位于Scrapy引擎和爬虫之间,主要用于处理爬虫的响应输入和请求输出。

爬虫:用于从特定网页中提取需要的信息,也可以从中提取URL交给调度器,让Scrapy继续爬取下一个页面。

项目管道:负责处理爬虫从网页中抓取的信息,主要的功能为持久化项目、验证项目的有效性、清除不需要的信息,并完成数据存储。

二、爬虫实战

1.项目需求

基于Scrapy框架爬取某网站的新闻标题和内容。

2.分析页面网站

通过网页解析,了解新闻网站不同模块对应的详情页URL均为静态数据。

通过对不同板块的网页进行解析,了解各模块的新闻为动态加载数据,且新闻标题位于“a”标签下。

进一步,分析新闻网页,了解新闻内容位于“p”标签下。

3.项目搭建

第一步:创建项目

Pycharm终端输入

cd框架#进入项目文件夹路径scrapystartprojectwangyi#创建项目,wangyi为项目名cdwangyi#进入项目路径scrapygenspiderspiderName

1
查看完整版本: 爬虫实战Scrapy框架