框架的使用(六):scrapy

本文详细介绍如何使用Scrapy框架搭建基本的爬虫项目,并通过实例演示如何抓取指定网站的内容,包括项目的创建、配置及核心代码实现。

第一个小项目

经过上面的学习,现在我们完全具备了开发小的项目的能力,现在我们开始吧

准备:

系统平台:Ubuntu 16.04

软件编译环境:Pycharm

一:新建:在终端输入:scrapy startproject 《项目名称》 例如:scrapy projectone

        会出现以下的显示:


你会在你的主文件夹下面看到你的新建成功后的文件

二:创建

在主文件夹下面利用pycharm 打开你的新建的文件

你会看到以下的列表;


新建爬虫:你需要在spiders下面新建一个.py格式的文件 例如:new1.py

三:编辑

现在准备工作可以说是全部的完成了,我们可以开心加愉快的书写我们的爬虫了

编辑文件:item.py

原始代码:

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class ProjectoneItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。

类似在ORM中做的一样,您可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个Item。 (如果不了解ORM, 不用担心,您会发现这个步骤非常简单)

首先根据需要从dmoz.org获取到的数据对item进行建模。 我们需要从dmoz中获取名字,url,以及网站的描述。 对此,在item中定义相应的字段。编辑 tutorial 目录中的 items.py 文件:

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html

import scrapy

from scrapy.item import  Item,Field
class ProjectoneItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    url = scrapy.Field()
    title = scrapy.Field()
    link = scrapy.Field()
    pass
编辑文件:pipeline.py

原始代码:

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html


class ProjectonePipeline(object):
    def process_item(self, item, spider):
        return item

因为本次我们需要完成的任务是爬取到某个网页,pipeline本次是不需要编辑的,代码如上

编辑文件:setting.py

原始代码:setting.py

# -*- coding: utf-8 -*-

# Scrapy settings for projectone project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     http://doc.scrapy.org/en/latest/topics/settings.html
#     http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
#     http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html

BOT_NAME = 'projectone'

SPIDER_MODULES = ['projectone.spiders']
NEWSPIDER_MODULE = 'projectone.spiders'

因为本次我们需要完成的任务是爬取到某个网页,setting本次是不需要编辑的,代码如上

编辑文件:new1.py

由于是创建的新文件,我们需要从头编辑

代码如下:

from scrapy .spider import Spider    #导入模块的方法 这里利用的是from import方法来导入Python模块的 模块的对象是scrapy.spider 常亮是Spider

class DmozSpider(spider):    #这里是定义的一个类 类名是DmozSpider     父类是spider

    name="dmoz"    #爬虫的名字是“dmoz”  一定要知道,爬虫的名字是唯一的  但是也是不用的    经验的话尽量是不要和你的spider文件的名字相同。

    allowed_domains=["peihua.cn"]   #允许的域名范围  就是你最主要的是想爬取哪个网页的一级域名

    start_urls=["http://www.peihua..cn/zhaosheng/default.aspx","http://www.peihua.cn/library/default.aspx"]  #爬虫开始爬去的第一个url  初始的url   这里的url可以是一个  也是可以多个的  看你的需要来定的。

    def parse(self,response):      #这是属于一种方法的  def 本身是一个函数的对象     def 定义了一个模块的变量

    filename = response.url.split("/")[-2]     #这里定义了一个对象    但是这里还是有很多的知识点的   需要我们去挖掘 关于里面的匹配 在我的博客里面是有介绍的  请大家仔细的学习

    open(filename,'wb').write(response.body)   #   这里是利用open的对文件的操作    ‘wb’是已二进制写模式来打开的  对应的还有write

后续:请大家仔细的学习里面的知识   里面的知识点在我的博客中都是有写到的  要是没有写到的话请大家和我讨论  欢迎回复,回帖。




        


MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值