『scrapy爬虫』01. 安装环境创建示例项目(保姆级图文)

47 篇文章 16 订阅
14 篇文章 0 订阅


欢迎关注 『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爬虫』 专栏,持续更新中
『未完待续』


  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值