• scrapy框架


    Scrapy 的运作流程:
    代码写好,程序开始运行...
    引擎:Hi!Spider, 你要处理哪一个网站?
    Spider:老大要我处理 xxxx.com。
    引擎:你把第一个需要处理的 URL 给我吧。
    Spider:给你,第一个 URL 是 xxxxxxx.com。
    引擎:Hi!调度器,我这有 request 请求你帮我排序入队一下。
    调度器:好的,正在处理你等一下。
    引擎:Hi!调度器,把你处理好的 request 请求给我。
    调度器:给你,这是我处理好的 request
    引擎:Hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个 request 请求
    下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个 request 下载失败
    了。然后引擎告诉调度器,这个 request 下载失败了,你记录一下,我们待会儿再下载)
    引擎:Hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处理过了,你
    自己处理一下(注意!这儿 responses 默认是交给 def parse()这个函数处理的)
    Spider:(处理完毕数据之后对于需要跟进的 URL),Hi!引擎,我这里有两个结果,
    这个是我需要跟进的 URL,还有这个是我获取到的 Item 数据。
    引擎:Hi !管道 我这儿有个 item 你帮我处理一下!调度器!这是需要跟进 URL 你帮
    我处理下。然后从第四步开始循环,直到获取完老大需要全部信息。
    管道``调度器:好的,现在就做!
    注意 ! 只有当调度器中不存在任何 request 了 , 整个程序才会停止 , ( 也就是说 , 对于
    下载失败的 URL ,Scrapy 也会重新下载。)

    制做爬虫:

    1,新建项目(scrapy startproject  项目名)

    2,明确目标(编写items.py)明确你想要抓取的目标

    3,制作爬虫(scrapy genspider 名称  网址)

    4,存储内容(pipelines.py)设计管道存储爬去内容

    建立爬虫之后要在setting里面设置一些参数

    ROBOTSTXT_OBEY = False 这样设置,因为scrapy是默认遵守爬虫协议的,所以我们要把它设置为false
    LOG_FILE='tencent.log'#日志文件
    LOG_ENABLED=True#默认启用日志

    LOG_ENCODING='UTF-8'#日志编码
    LOG_LEVEL='DEBUG'#日志等级 ERROR/WARNING/INFO/DEBUG


    还有存储 的时候需要打开
    ITEM_PIPELINES = {
    'DaZhong.pipelines.DazhongPipeline': 300,#这个是你对应爬虫 名字是跟你的爬虫名字对应
    }

    都设置完之后 可以现在 爬虫文件parse函数里面写下这些代码

    with open('dazhong.html','w',encoding='utf-8')as fp:
    fp.write(response.body.decode('utf-8'))
    然后运行项目 看会不会有保存的html文件
  • 相关阅读:
    C语言字符串读入函数笔记
    济大路痴
    Super Jumping! Jumping! Jumping!
    SpringMVC中静态资源的处理
    SpringMVC的拦截器讲解
    九、Spring中使用@Value和@PropertySource为属性赋值
    spring中最重要的一些Aware接口
    八、spring生命周期之BeanPostProcessor
    七、spring生命周期之初始化和销毁方法
    六、spring之通过FactoryBean为ioc容器中添加组件
  • 原文地址:https://www.cnblogs.com/wts-home/p/9863008.html
Copyright © 2020-2023  润新知