zoukankan      html  css  js  c++  java
  • 基于Scrapt框架的全站数据爬取

    创建scrapy工程项目,除了爬虫文件中的代码需要略微修改,其他模块用法相同(如中间件,管道等);

    爬虫文件代码流程

    导入链接提取器

    from scrapy.linkextractors import LinkExtractor

    导入规则解析器

    from scrapy.spiders import CrawlSpider,Rule

    1、使爬虫文件中的类不在继承scrapy.Spider,而是CrawlSpider

    2、起始URL一样

    3、定义链接提取规则,基于正则表达式

      link = LinkExteactor(allow = 'r'所需的正则表达式")

      link2 = LinkExteactor(allow = 'r'所需的正则表达式")

      框架会自动请求起始URL,并将页面返回给链接提取器,链接提取器通过正则表达式提取匹配的URL;

      

    4、定义规则解析器

      rules = (

        Rule(link(链接提取器名称),callback="回调函数名称",follew=True),

        Rule(link2(链接提取器名称),callback="回调函数名称",follew=False),  

      )

      follew参数表示,是否在link获取到的链接内继续获取link中要匹配的链接

      框架会自动让规则解析器去请求链接提取器提取到的链接,并返回页面交给回调函数,回调函数,用来编写解析数据的代码;

    5、编写回调函数解析数据

      def parse_one(self,response):

        print(response)

      def parse_two(self,response):

        print(response)

  • 相关阅读:
    codeforces #330 div2
    codeforces #332 div2
    Codeforces Round #331 (Div. 2)C. Wilbur and Points
    poj 01背包
    zoj 1200 Mining
    nginx反向代理与负载均衡
    springcloud----config分布式配置中心
    springcloud--zuul 网关
    springcloud ----Hystrix熔断器
    docker私有镜像仓库harbor搭建和配置
  • 原文地址:https://www.cnblogs.com/jayxuan/p/10841381.html
Copyright © 2011-2022 走看看