对于scrapy框架的初步了解
-
Scrapy Engine(引擎):
负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。 -
Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
-
Downloader(下载器):负责下载Scrapy
Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy
Engine(引擎),由引擎交给Spider来处理, -
Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器).
-
Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
-
Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。
-
Spider
Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)
scrapy安装环境:window10 x64系统、python3.8、pycharm-idle、miniconda、scrapy
一、scrapy的安装
在miniconda创建的py3.8环境下安装scrapy
在minicomda命令行中输入下列命令,如果miniconda安装时与cmd相连则在cmd中输入也可以
注:安装scrapy时需切换到conda相应的环境中
conda install scrapy
可以输入验证
scrapy
得到如下或类似结果,表面安装成功
安装后也可以采用下列命令验证:
scrapy bench
查看scrapy的相关命令
scrapy -h
↓ ↓ ↓
一. 新建项目(scrapy startproject)
在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:
scrapy startproject mySpider
其中, mySpider 为项目名称,可以看到将会创建一个 mySpider 文件夹,目录结构大致如下:
下面来简单介绍一下各个主要文件的作用:
mySpider/
scrapy.cfg
mySpider/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
这些文件分别是:
scrapy.cfg: 项目的配置文件。
mySpider/: 项目的Python模块,将会从这里引用代码
。
mySpider/items.py: 项目的目标文件。
mySpider/pipelines.py: 项目的管道文件
。
mySpider/settings.py: 项目的设置文件。
mySpider/spiders/: 存储爬虫代码目录。
二、创建爬虫
方法1:
scrapy genspider spider_name url
#spider_name 必须唯一且不与项目名称相同
#url 需要爬去网址的url
例:scrapy genspider kuaiip kuaidaili.com
注:用该命令创建时确保当前文件位置是在项目文件中,此处的项目文件是用startproject创建的项目文件中。
方法2:
在startproject命令创建的项目文件中的spiders文件中自己创建一个.py文件来创建爬虫文件
方法1和方法2的区别:
法1生成的spider.py文件会自动填写一些内容,而法2则完全需要自己去输入
附法1py文件:
而爬虫的相关语句则需要在 parse模块中自己编写对应的程序
三、运行爬虫
然后进入cmd或者miniconda命令行,在项目的根目录下运行
scrapy crawl lxf
笔者的计划为爬出ip及port
代理ip地址:
https://www.kuaidaili.com/free/ https://www.89ip.cn/index_2.html
相关视频博主:https://www.bilibili.com/video/BV1m441157FY?from=search&seid=4412432979565577345(讲的究极细,究极煎蛋)