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文件
  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/wts-home/p/9863008.html
Copyright © 2011-2022 走看看