当前位置: 首页 > wzjs >正文

阳江网站制作公司seo赚钱项目

阳江网站制作公司,seo赚钱项目,江西省建设工程协会网站查询,仿做唯品会网站CrawlSpider 实现网站的全站数据爬取 就是将网站中所有页码对应的页面数据进行爬取。 crawlspider其实就是scrapy封装好的一个爬虫类,通过该类提供的相关的方法和属性就可以实现全新高效形式的全站数据爬取。 使用流程: 新建一个scrapy项目 cd 项目 …

CrawlSpider

  • 实现网站的全站数据爬取

    • 就是将网站中所有页码对应的页面数据进行爬取。
  • crawlspider其实就是scrapy封装好的一个爬虫类,通过该类提供的相关的方法和属性就可以实现全新高效形式的全站数据爬取。

  • 使用流程:

    • 新建一个scrapy项目

    • cd 项目

    • 创建爬虫文件(*):

      • scrapy genspider-t crawl spiderName www.xxx.com

      • 爬虫文件中发生的变化有哪些?

        • 当前爬虫类的父类为CrawlSpider
        • 爬虫类中多了一个类变量叫做rules
          • LinkExtractor:链接提取器
            • 可以根据allow参数表示的正则在当前页面中提取符合正则要求的链接
          • Rule:规则解析器
            • 可以接收链接提取器提取到的链接,并且对每一个链接进行请求发送
            • 可以根据callback指定的回调函数对每一次请求到的数据进行数据解析
        • 思考:如何将一个网站中所有的链接都提取到呢?
          • 只需要在链接提取器的allow后面赋值一个空正则表达式即可
        • 目前在scrapy中有几种发送请求的方式?
          • start_urls列表可以发送请求
          • scrapy.Request()
          • scrapy.FormRequest()
          • Rule规则解析器
  • 注意:

    • 链接提取器和规则解析器是一一对应的(一对一的关系)
    • 建议在使用crawlSpider实现深度爬取的时候,需要配合手动请求发送的方式进行搭配!
  • USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
    

分布式

  • 分布式在日常开发中并不常用,只是一个噱头!

  • 概念:

    • 可以使用多台电脑搭建一个分布式机群,使得多台对电脑可以对同一个网站的数据进行联合且分布的数据爬取。
  • 声明:

    • 原生的scrapy框架并无法实现分布式操作!why?
      • 多台电脑之间无法共享同一个调度器
      • 多台电脑之间无法共享同一个管道
  • 如何是的scrapy可以实现分布式呢?

    • 借助于一个组件:scrapy-redis
    • scrapy-redis的作用是什么?
      • 可以给原生的scrapy框架提供可被共享的调度器和管道!
      • 环境安装:pip install scrapy-redis
        • 注意:scrapy-redis该组件只可以将爬取到的数据存储到redis数据库
  • 编码流程(重点):

    • 1.创建项目

    • 2.cd 项目

    • 3.创建基于crawlSpider的爬虫文件

      • 3.1 修改爬虫文件
        • 导包:from scrapy_redis.spiders import RedisCrawlSpider
        • 修改当前爬虫类的父类为 RedisCrawlSpider
        • 将start_urls替换成redis_key的操作
          • redis_key变量的赋值为字符串,该字符串表示调度器队列的名称
        • 进行常规的请求操作和数据解析
    • 4.settings配置文件的修改

      • 常规内容修改(robots和ua等),先不指定日志等级

      • 指定可以被共享的管道类

        • ITEM_PIPELINES = {'scrapy_redis.pipelines.RedisPipeline': 400
          }
          
      • 指定可以被共享的调度器

        • # 使用scrapy-redis组件的去重队列
          DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
          # 使用scrapy-redis组件自己的调度器
          SCHEDULER = "scrapy_redis.scheduler.Scheduler"
          # 是否允许暂停
          SCHEDULER_PERSIST = True
          
      • 指定数据库

        • REDIS_HOST = '127.0.0.1'
          REDIS_PORT = 6379
          
    • 5.修改redis数据库的配置文件(redis.windows.conf)

      • 在配置文件中改行代码是没有没注释的:

        • bind 127.0.0.1
          #将上述代码注释即可(解除本机绑定,实现外部设备访问本机数据库如果配置文件中还存在:protected-mode = true,将true修改为false,
          修改为false后表示redis数据库关闭了保护模式,表示其他设备可以远程访问且修改你数据库中的数据
          
    • 6.启动redis数据库的服务端和客户端

    • 7.运行项目,发现程序暂定一直在等待,等待爬取任务

    • 8.需要向可以被共享的调度器的队列(redis_key的值)中放入一个起始的url

      • 在redis数据库的客户端执行如下操作:

        • lpush 队列名称 起始的url

        • 起始url:https://wz.sun0769.com/political/index/politicsNewest?id=1&page=1

http://www.dtcms.com/wzjs/494591.html

相关文章:

  • 学电商比较好的网站有哪些免费顶级域名注册网站
  • 深圳设计网站排名指数函数和对数函数
  • 开一个做网站的公司天津seo结算
  • 珠海专业做网站公司公司网站怎么弄
  • 上海医疗网站建设网站优化推广的方法
  • 网站建设中html百度产品
  • wordpress圆角插件宁波受欢迎全网seo优化
  • 九江网站建设下载百度手机助手
  • 网站开发环境vs2015是什么上海网站排名seo公司哪家好
  • 广州货运网站建设网络运营推广
  • 网站目录做301企业专业搜索引擎优化
  • 网站做等保三级建设seogw
  • 优化网站建设价格友情链接的英文
  • 音乐网站首页设计搜索引擎广告推广
  • 做网站来钱快十大洗脑广告
  • 溧阳网站建设公司引流用什么话术更吸引人
  • 网站建设的基本原则九易建网站的建站流程
  • 自己建设网站多少钱域名站长工具
  • 台州微网站建设国内比百度好的搜索引擎
  • 南京做网站公司地点在百度怎么创建自己的网站
  • 用HBuilder做网站的模板如何做好推广
  • 文化墙优化神马排名软件
  • 力洋深圳做网站公司怎么快速刷排名
  • 免费做网站哪个好小程序运营推广公司
  • 企业为什么选择网站建设网站搜索工具
  • 浙江省建设厅官方网站傻瓜式自助建站系统
  • 一家专门做特产的网站爱网
  • 做网站电话号码线上宣传方案
  • 成都网站建设与开发黄金网站app大全
  • 做外贸的在哪些网站找工作腾讯会议开始收费