scrapy框架

Posted wts-home

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy框架相关的知识,希望对你有一定的参考价值。

Scrapy 的运作流程:
代码写好,程序开始运行...
引擎:Hi!Spider, 你要处理哪一个网站?
Spider:老大要我处理 xxxx.com。
引擎:你把第一个需要处理的 URL 给我吧。
Spider:给你,第一个 URL 是 xxxxxxx.com。
引擎:Hi!调度器,我这有 request 请求你帮我排序入队一下。
调度器:好的,正在处理你等一下。
引擎:Hi!调度器,把你处理好的 request 请求给我。
调度器:给你,这是我处理好的 request
引擎:Hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个 request 请求
下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个 request 下载失败
了。然后引擎告诉调度器,这个 request 下载失败了,你记录一下,我们待会儿再下载)
引擎:Hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处理过了,你
自己处理一下(注意!这儿 responses 默认是交给 def parse()这个函数处理的)
Spider:(处理完毕数据之后对于需要跟进的 URL),Hi!引擎,我这里有两个结果,
这个是我需要跟进的 URL,还有这个是我获取到的 Item 数据。
引擎:Hi !管道 我这儿有个 item 你帮我处理一下!调度器!这是需要跟进 URL 你帮
我处理下。然后从第四步开始循环,直到获取完老大需要全部信息。
管道``调度器:好的,现在就做!
注意 ! 只有当调度器中不存在任何 request 了 , 整个程序才会停止 , ( 也就是说 , 对于
下载失败的 URL ,Scrapy 也会重新下载。)

制做爬虫:

1,新建项目(scrapy startproject  项目名)

2,明确目标(编写items.py)明确你想要抓取的目标

3,制作爬虫(scrapy genspider 名称  网址)

4,存储内容(pipelines.py)设计管道存储爬去内容

建立爬虫之后要在setting里面设置一些参数

ROBOTSTXT_OBEY = False 这样设置,因为scrapy是默认遵守爬虫协议的,所以我们要把它设置为false
LOG_FILE=‘tencent.log‘#日志文件
LOG_ENABLED=True#默认启用日志

LOG_ENCODING=‘UTF-8‘#日志编码
LOG_LEVEL=‘DEBUG‘#日志等级 ERROR/WARNING/INFO/DEBUG


还有存储 的时候需要打开
ITEM_PIPELINES = {
‘DaZhong.pipelines.DazhongPipeline‘: 300,#这个是你对应爬虫 名字是跟你的爬虫名字对应
}

都设置完之后 可以现在 爬虫文件parse函数里面写下这些代码

with open(‘dazhong.html‘,‘w‘,encoding=‘utf-8‘)as fp:
fp.write(response.body.decode(‘utf-8‘))
然后运行项目 看会不会有保存的html文件
































以上是关于scrapy框架的主要内容,如果未能解决你的问题,请参考以下文章

Python之Scrapy安装

走近代码之Python--爬虫框架Scrapy

Scrapy框架概述

爬虫框架Scrapy 之 --- scrapy文件

初识scrapy爬虫框架

Python Scrapy框架