Python scrapy框架怎样使用?浅谈scrapy执行流程

Admin 2022-01-11 群英技术资讯 579 次浏览

    这篇文章给大家分享的是Python scrapy框架的相关内容,下文介绍了创建scrapy项目的操作,scrapy框架常用命令,scrapy项目下载文件和scrapy框架的整体执行流程,对大家了解和学习scrapy框架的使用会有一定的帮助,感兴趣的朋友就继续往下看吧。

    scrapy框架概述:Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

    创建项目

    由于pycharm不能直接创建scrapy项目,必须通过命令行创建,所以相关操作在pycharm的终端进行:
    1、安装scrapy模块:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy
    2、创建一个scrapy项目:scrapy startproject test_scrapy
    4、生成一个爬虫:scrapy genspider itcast "itcast.cn”
    5、提取数据:完善spider,使用xpath等方法
    6、保存数据:pipeline中保存数据

    常用的命令

    创建项目:scrapy startproject xxx
    进入项目:cd xxx #进入某个文件夹下
    创建爬虫:scrapy genspider xxx(爬虫名) xxx.com (爬取域)
    生成文件:scrapy crawl xxx -o xxx.json (生成某种类型的文件)
    运行爬虫:scrapy crawl XXX
    列出所有爬虫:scrapy list
    获得配置信息:scrapy settings [options]

    Scrapy项目下文件

    scrapy.cfg: 项目的配置文件
    test_scrapy/: 该项目的python模块。在此放入代码(核心)
    test_scrapy/items.py: 项目中的item文件.(这是创建容器的地方,爬取的信息分别放到不同容器里)
    test_scrapy/pipelines.py: 项目中的pipelines文件.
    test_scrapy/settings.py: 项目的设置文件.(我用到的设置一下基础参数,比如加个文件头,设置一个编码)
    test_scrapy/spiders/: 放置spider代码的目录. (放爬虫的地方)

    scrapy框架的整体执行流程

    1.spider的yeild将request发送给engine
    2.engine对request不做任何处理发送给scheduler
    3.scheduler,生成request交给engine
    4.engine拿到request,通过middleware发送给downloader
    5.downloader在\获取到response之后,又经过middleware发送给engine
    6.engine获取到response之后,返回给spider,spider的parse()方法对获取到的response进行处理,解析出items或者requests
    7.将解析出来的items或者requests发送给engine
    8.engine获取到items或者requests,将items发送给ItemPipeline,将requests发送给scheduler(ps,只有调度器中不存在request时,程序才停止,及时请求失败scrapy也会重新进行请求)

    关于yeild函数介绍

    简单地讲,yield 的作用就是把一个函数变成一个 generator(生成器),带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,带有yeild的函数遇到yeild的时候就返回一个迭代值,下次迭代时, 代码从 yield 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行, 直到再次遇到 yield。

    通俗的讲就是:在一个函数中,程序执行到yield语句的时候,程序暂停,返回yield后面表达式的值,在下一次调用的时候,从yield语句暂停的地方继续执行,如此循环,直到函数执行完。

    关于Python scrapy框架的使用和执行流程就介绍到这,有这方面学习需要的朋友可以了解看看你,想要了解更多scrapy框架的内容,大家可以关注其它的相关文章。

文本转载自脚本之家

群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服