开源低代码平台-Microi吾码-采集引擎

打印 上一主题 下一主题

主题 841|帖子 841|积分 2523

优势

   

  • 本文开端讲一下采集引擎,后续会不断在此文章更新各种采集方式
  • 采集引擎支持采集DOM渲染前的html,也支持渲染后的html
  • 采集引擎支持采集网页的全部资源请求、接口请求
  

相干开源项目

基于开源低代码平台Microi吾码的图片壁纸、短视频开源项目:https://microi.blog.csdn.net/article/details/144002079
采集图片、视频接口引擎代码

   实际上以下代码我们也可以写的更通用一点,将selectors由前端传入,如许可以做到一个接口采集万物,固然也可以每个网站采集对应一个接口引擎
  1. if(!V8.Param.Url){
  2.   V8.Result = { Code : 0, Msg : '参数错误!' }; return;
  3. }
  4. var url = V8.Param.Url;
  5. var headless = V8.Param.Headless;
  6. var isCloseBrowser = V8.Param.IsCloseBrowser;
  7. var isClosePage = V8.Param.IsClosePage;
  8. var selectors = [];
  9. var urlWebType = 'kuaishou';
  10. //目前仅支持[v.kuaishou.com]  实际上支持所有网站,只要你会写Selector
  11. if(url.indexOf('v.kuaishou.com') > -1){
  12.   urlWebType = 'kuaishou'
  13. }else if(url.indexOf('v.douyin.com') > -1){
  14.   urlWebType = 'douyin'
  15. }else{
  16.         V8.Result = { Code : 0,  Msg : '目前仅支持快手、抖音。' }; return;
  17. }
  18. if(urlWebType == 'kuaishou'){
  19.   if(V8.Param.ContentType == 'ShortVideo'){
  20.     //采集快手视频。后期需改成动态采集规则配置
  21.     selectors = [{
  22.                                                         Key : 'Author',
  23.                                                         Selector : '.short-video-info .short-video-info-container .profile-user-name .profile-user-name-title',
  24.                                                         Script : '(element) => element.innerText',
  25.                                                 },{
  26.                                                         Key : 'Title',
  27.                                                         Selector : '.short-video-info .short-video-info-container .short-video-info-container-detail .video-info-title',
  28.                                                         Script : '(element) => element.innerText',
  29.                                                 },{
  30.                                                         Key : 'FileUrls',
  31.                                                         Selector : '.kwai-player-container-video video',
  32.                                                         Script : '(element) => element.src',
  33.                                                 },{
  34.                                                         Key : 'Cover',
  35.                                                         Selector : '.short-video-detail .short-video-detail-container .short-video-wrapper .video-container-player',
  36.                                                         Script : '(element) => element.getAttribute(\'poster\')',
  37.                                                 }];
  38.   }else{
  39.     //采集快手图片。后期需改成动态采集规则配置
  40.     selectors = [{
  41.                                                         Key : 'Author',
  42.                                                         Selector : '.work-info.section .author .txt-wrapper .txt',
  43.                                                         Script : '(element) => element.innerText',
  44.                                                 },{
  45.                                                         Key : 'Title',
  46.                                                         Selector : '.work-info.section .desc',
  47.                                                         Script : '(element) => element.innerText',
  48.                                                 },{
  49.                                                         Key : 'FileUrls',
  50.                                                         Selector : '.long-image-container img, .swiper-container-item img',
  51.                                                         Script : '(element) => element.src',
  52.                                                 }];
  53.   }
  54. }if(urlWebType == 'douyin'){
  55.   if(V8.Param.ContentType == 'ShortVideo'){
  56.     //采集抖音视频。后期需改成动态采集规则配置
  57.     selectors = [{
  58.                                                         Key : 'Author',
  59.                                                         Selector : '.video-detail .leftContainer img',
  60.                                                         Script : '(element) => element.alt',
  61.                                                 },{
  62.                                                         Key : 'Title',
  63.                                                         Selector : 'title',
  64.                                                         Script : 'el => el.textContent',
  65.                                                 },{
  66.                                                         Key : 'FileUrls',
  67.                                                         Selector : '.xg-video-container video source',
  68.                                                         Script : 'el => el.getAttribute(\'src\')',//'el => el.querySelector(\'source\').getAttribute(\'src\')',
  69.                                                 },{
  70.                                                         Key : 'Cover',
  71.                                                         Selector : 'meta[name=\'lark:url:video_cover_image_url\']',
  72.                                                         Script : 'el => el.content',
  73.                                                 }];
  74.   }else{
  75.     //采集抖音图片。后期需改成动态采集规则配置
  76.     selectors = [{
  77.                                                         Key : 'Author',
  78.                                                         Selector : '.work-info.section .author .txt-wrapper .txt',
  79.                                                         Script : '(element) => element.innerText',
  80.                                                 },{
  81.                                                         Key : 'Title',
  82.                                                         Selector : '.work-info.section .desc',
  83.                                                         Script : '(element) => element.innerText',
  84.                                                 },{
  85.                                                         Key : 'FileUrls',
  86.                                                         Selector : '.long-image-container img, .swiper-container-item img',
  87.                                                         Script : '(element) => element.src',
  88.                                                 }];
  89.   }
  90. }
  91. V8.Result = V8.Spider.GetRenderHtml({
  92.   Headless : headless,
  93.   IsCloseBrowser : isCloseBrowser,
  94.         IsClosePage : isClosePage,
  95.   Url : url,
  96.   Selectors : selectors
  97.   // ExecutablePath : 'D:\\Web\\microi-api\\publish\\Chrome\\Application\\109.0.5414.168',
  98.         // VirtualWindows : true,
  99.   //Selector : '.long-image-container img, .swiper-container-item img',
  100.         //Script : '(element) => element.src',
  101.         // ResponseUrlStart : 'https://m.yxixy.com/rest/wd/photo/info?'
  102. });
复制代码
Microi吾码-系列文档

   

  • 平台介绍:https://microi.blog.csdn.net/article/details/143414349
  • 一键安装使用:https://microi.blog.csdn.net/article/details/143832680
  • 快速开始使用:https://microi.blog.csdn.net/article/details/143607068
  • 源码本地运行-后端:https://microi.blog.csdn.net/article/details/143567676
  • 源码本地运行-前端:https://microi.blog.csdn.net/article/details/143581687
  • Docker部署:https://microi.blog.csdn.net/article/details/143576299
  • 表单引擎:https://microi.blog.csdn.net/article/details/143671179
  • 模块引擎:https://microi.blog.csdn.net/article/details/143775484
  • 接口引擎:https://microi.blog.csdn.net/article/details/143968454
  • 工作流引擎:https://microi.blog.csdn.net/article/details/143742635
  • 界面引擎:https://microi.blog.csdn.net/article/details/143972924
  • 打印引擎:https://microi.blog.csdn.net/article/details/143973593
  • V8函数列表-前端:https://microi.blog.csdn.net/article/details/143623205
  • V8函数列表-后端:https://microi.blog.csdn.net/article/details/143623433
  • V8.FormEngine用法:https://microi.blog.csdn.net/article/details/143623519
  • Where条件用法:https://microi.blog.csdn.net/article/details/143582519
  • DosResult说明:https://microi.blog.csdn.net/article/details/143870540
   

  • 分布式存储设置:https://microi.blog.csdn.net/article/details/143763937
  • 自界说导出Excel:https://microi.blog.csdn.net/article/details/143619083
  • 表单引擎-定制组件:https://microi.blog.csdn.net/article/details/143939702
  • 表单控件数据源绑定设置:https://microi.blog.csdn.net/article/details/143767223
  • 复制表单和模块到其它数据库:https://microi.blog.csdn.net/article/details/143950112
  • 论传统定制开发与低代码开发的优缺点:https://microi.blog.csdn.net/article/details/143866006
  • 开源版、个人版、企业版区别:https://microi.blog.csdn.net/article/details/143974752
  • 成为合伙人:https://microi.blog.csdn.net/article/details/143974715
   

  • 基于Microi的开源项目:https://microi.blog.csdn.net/category_12828230.html
  • 成功案例:https://microi.blog.csdn.net/category_12828272.html
  接口引擎实战-系列文档

   

  • 接口引擎实战-发送第三方短信:https://microi.blog.csdn.net/article/details/143990546
  • 接口引擎实战-发送阿里云短信:https://microi.blog.csdn.net/article/details/143990603
  • 接口引擎实战-微信小步调授权手机号登录:https://microi.blog.csdn.net/article/details/144106817
  • 接口引擎实战-微信v3支付JSAPI下单:https://microi.blog.csdn.net/article/details/144156119
  • 接口引擎实战-微信支付回调接口:https://microi.blog.csdn.net/article/details/144168810
  • 接口引擎实战-MongoDB相干操纵:https://microi.blog.csdn.net/article/details/144434527

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表