• 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文件
  • 相关阅读:
    Linux常用命令-centos
    USACO 2006 Open, Problem. The Country Fair 动态规划
    USACO 2007 March Contest, Silver Problem 1. Cow Traffic
    USACO 2007 December Contest, Silver Problem 2. Building Roads Kruskal最小生成树算法
    USACO 2015 February Contest, Silver Problem 3. Superbull Prim最小生成树算法
    LG-P2804 神秘数字/LG-P1196 火柴排队 归并排序, 逆序对
    数据结构 并查集
    浴谷国庆集训 对拍
    1999 NOIP 回文数
    2010 NOIP 普及组 第3题 导弹拦截
  • 原文地址:https://www.cnblogs.com/wts-home/p/9863008.html
Copyright © 2020-2023  润新知