欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
框架结构
初学者一般从爬虫(Spider)开始,这里编写我们的爬虫代码.
Scrapy 框架的主要组成部分和结构:
- 引擎(Engine):引擎负责处理整个系统的数据流控制,触发事件,以及执行整个爬虫流程。
- 调度器(Scheduler):调度器负责接收引擎发送过来的请求,并按照一定策略将请求入队,等待引擎处理。
- 下载器(Downloader):下载器负责下载网页内容,并将下载得到的页面数据返回给引擎,通常使用异步方式实现并支持多线程下载。
- 爬虫(Spider):爬虫定义了如何爬取特定网站(或特定页面),包括如何从网页中提取结构化数据,Scrapy 中可以定义多个爬虫。
- 项目管道(Item Pipelines):项目管道负责处理爬取的数据,可以进行数据清洗、验证、存储等操作,可以定义多个管道,数据会依次经过这些管道处理。
- 中间件(Middleware):中间件是在引擎和下载器之间的钩子框架,可以在请求和响应的不同阶段对它们进行拦截和处理,比如可以用来添加自定义的 User-Agent、代理、重试机制等。
- 项目配置文件(Settings):项目配置文件包含了 Scrapy 爬虫的各种配置选项,如爬取速度、并发数、延迟时间、日志级别等。
1. 安装库
- 建议用国内源,因为库包比较大,国外源下载慢.
pip install scrapy
- 检查版本号,看看一些常用命令
scrapy -version
- 常用命令如下:
bench:用于运行快速基准测试,可以帮助你评估 Scrapy 的性能表现。
fetch:使用 Scrapy 下载器获取特定 URL 的内容,并将内容输出到标准输出或指定文件中。
genspider:根据预定义的模板生成新的爬虫文件,简化了创建新爬虫的过程。
runspider:运行一个独立的爬虫,无需创建一个完整的项目,适用于一次性的简单爬取任务。
settings:获取当前 Scrapy 项目的设置值,可以用来查看当前项目的配置信息。
shell:启动交互式的 Scrapy 控制台,方便开发者在其中测试和调试爬虫代码。
startproject:创建一个新的 Scrapy 项目,包括必要的目录结构和文件模板。
version:打印当前安装的 Scrapy 版本信息。
view:在浏览器中打开指定 URL,可以帮助开发者查看网页在 Scrapy 中的抓取结果。
2. 创建项目
- 如图所示创建项目成功,确保你找的到当前的文件夹,建议你cd到一个方便的文件夹后再进行下面的操作.
scrapy startproject 英文项目名
scrapy startproject myscrapy
- 创建指定爬虫
根据前面的提示cd到我们刚刚新建的项目文件夹
cd myscrapy
然后新建指定网页的爬虫项目
scrapy genspider 爬虫文件名 爬虫的url
scrapy genspider baidu baidu.com
在myscrapy\myscrapy\spiders
目录下可以看到我们刚刚新建的爬虫
其内容 start_urls = ["http://baidu.com/"]
对应前面的url
import scrapy
class BaiduSpider(scrapy.Spider):
name = "baidu"
allowed_domains = ["baidu.com"]
start_urls = ["http://baidu.com/"]
def parse(self, response):
pass
3. 项目结构与开发环境
在pycharm中打开项目,并新建venv的虚拟环境,虚拟环境中再次安装scrapy
库,个人建议用虚拟环境可以保证项目的相对独立性.
最后的项目结构
scrapy.cfg
project/
__init__.py
items.py
pipelines.py
settings.py
middlewares.py
spiders/
__init__.py
spider1.py
spider2.py
...
import scrapy
class BaiduSpider(scrapy.Spider):
name = "baidu"
allowed_domains = ["baidu.com"]# 限制或允许访问的域名列表
start_urls = ["http://baidu.com/"] # 起始url
def parse(self, response):
pass
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2024 mzh
Crated:2024-3-1
欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
『未完待续』