爬虫基础---Scrapy框架(I)

本文介绍了Scrapy爬虫的基本安装步骤与核心组件,详细解释了如何创建项目、编写爬虫逻辑、处理数据等内容,适合初学者快速掌握Scrapy爬虫技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

-windows中:
    需要安装的库:wheel--lxml--twisted--pywin32--scrapy
    注意:
    1.twisted 需要通过文件路径来安装  pip install  path(安装包下载地址:http://www.lfd.uci.deu/~gohlke/pythonlibs/#twisted 找到合适自己操作系统及python的版本)
    2.其他的库都可以通过pip install xxx安装

各个组件介绍

-engine 爬虫引擎
   负责控制各个组件之间的数据流,当某些操作触发事件后都通过engine来处理

-scheduler 调度器
   用来接受来自engine的请求,并将请求放入队列中,并通过事件返回给engine

-downloader
   通过engine请求下载网络数据并将结果响应给engine

-spider
  spider发出请求,并处理engine返回给它下载器响应数据,以items和规则内的数据请求url返回给engine items以新的请求集

创建Scrapy 项目

1.scrapy startproject project_name #创建一个爬虫项目
2.cd project_name   #进入项目目录
3.srapy genspider 爬虫名  爬虫域名   #建立爬虫

scrapy startproject myspider
scrapy genspider baiduspider  www.baidu.com

注意:
    一个完整的爬虫需要4步
        -新建目标 scrapy startproject
        -明确目标  编写items.py #定制要抓取的字段
        -制作爬虫  spiders
        -存储内容  pipelines.py

spider项目结构

-spiders文件夹  
    -spiders目录,负责存放继承scrapy的爬虫类
    -items.py 负责数据模型的建立,类似于实体类
    -middlewares.py 自定义的中间件
    -pipelines.py 负责对spider返回数据的处理
    -settings.py负责对整个爬虫的配置
-scrapy.cfg 项目的配置文件

scrapy的命令行命令

1.全局命令(表示可以在任何地方使用)

  startproject #创建爬虫项目
  genspider   #用于生成爬虫一共有四种模板
  basic(默认) crawl csvfeed xmlfeed
      -具体的用法
          scrapy genspider  爬虫名  爬去的网站域名
      -可以指定模板
         scrapy genspider -t 模板名

  settings  #scrapy settings -h 可以获取这个命令的所有帮助信息

  runspider  #scrapy runspider爬虫文件名称(这里的爬虫文件都是在项目目录下的spiders文件夹中)

  shell  #scrapy shell url地址 进入交互模式

  fetch  #scrapy fetch url地址 该命令会将网页document内容下载,并在浏览器显示 
      -参数
          --nolog 不打印日志
          --headers打印响应头信息
          --no-rediret 不做跳转

  view  #scrapy view url地址 
  该命令会通过scrapy 将网页的源代码下载下来并显示(因为现在很多网站的数据都是通过ajax请求来加载的,这个时候直接通过requests请求无法获取我们想要的数据,这个时候view命令可以帮助我们很好的判断)

  version #scrapy version -v 查看版本信息

2.项目命令(只能在项目目录下使用)

    crawl  #启动spider爬虫   scrapy crawl 爬虫名

    check  #用于检查代码是否有错误 scrapy check

    list  #列出所有可用的爬虫   scrapy list
    edit
    parse
    bench

scrapy框架中选择器(提取数据的机制)

–xpath是专门在xml文件中选择节点的语言,也可以用在HTML上
–css是一门将HTML文档样式化,选择器有由它定义,并与特定的HTML元素的样式相关连

1.xpath选择器

nodeName 选择节点的所有节点
/       从根节点选取
//  从匹配选择的当前节点选择文档中的节点,不考虑它们的位置
.       选择当前节点
..      选择当前节点的父节点
@       选择属性
*       匹配任何元素的节点
@*      匹配任何属性节点
Node()  匹配任何类型的节点

2.css选择器

extract_first() #获取标签的文本内容,直接返回第一个值
extract_first(default='xx') 可以设置默认参数,若匹配不到则返回 xx
extract() #获取标签的文本内容,返回一个列表

contains()

spiders用法

1.spider类

–定义如何爬取某个网站;包括了爬取的动作(是否跟进链接)以及如何从网页中提取结构化数据(爬取item)

2.工作流程分析
1.以初始的URL初始化Request,并设置回调函数,当该request下载完毕并返回时,将生成response,并作为参数传给回调函数。spider中初始的request是通过start_requests()来获取的。start_requests()获取start_urls的URL,并用parse回调函数生成Request
2.在回调函数内分析返回的网页内容,可以返回Item对象,或Dict,或者Request,以及是一个包含三者的可迭代的容易,返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数
3.在回调函数内,可以通过lxml,bs4,xpath,css等方法获取我们想要的内容生成item
4.最后将item传递给Pipeline处理

--注意:
        创建一个Sipder,必须继承scrapy.Spider类,且定义三个属性:
        name,start_urls, parse()

3.常用属性

-name 
定义爬虫的名字(必须是唯一的),通过命令启动的时候就是这个名字

-start_urls 
包含了Spider在启动时进行爬取得url列表。因此,第一个被获取到得页面将是其中之一。后续的url则从初始的URL获取到的数据中提取

-parse(response) 
是spider的一个方法。被调用时,每个初始URL完成下载后生成Response对象将会作为唯一的参数传递给该函数。该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的Request对象 

-allowed_domains 
包含spider允许爬取的域名列表。当offsiteMiddleware启用时,域名不在类别中URL不会被访问。因此在爬虫文件中,每次生成Request请求时都会济宁和这里的域名进行判断
内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值