zoukankan      html  css  js  c++  java
  • 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文件
  • 相关阅读:
    python变量及简单数据类型
    python函数小案例
    python字符串和列表小案例
    python循环输出
    Jmeter测试工具
    操作系统-进程管理~
    操作系统~
    组成原理第一章笔记~
    分时间段(年份或月份)统计,没有数字补0 Java(替代 MYSQL) 做法
    组成原理复习概略
  • 原文地址:https://www.cnblogs.com/wts-home/p/9863008.html
Copyright © 2011-2022 走看看