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)

  • 相关阅读:
    Redis 之服务器集群配置
    Redis 之持久化(rdb、aof)
    Redis 之消息发布与订阅(publish、subscribe)
    Redis事物及锁的运用
    Redis 之hash集合结构及命令详解
    对Ul下的li标签执行点击事件——如何获取你所点击的标签
    .net 面试题(3)
    SQL Server 系统时间
    分布式内存对象缓存 memcached
    MVC 模板页和布局
  • 原文地址:https://www.cnblogs.com/jayxuan/p/10841381.html
Copyright © 2011-2022 走看看