资讯专栏INFORMATION COLUMN

python爬虫实践: 豆瓣小组命令行客户端

golden_hamster / 1128人阅读

摘要:主要特性前一阵重新组织了一下代码加了命令行信息用起来更方便了一些初步实现了豆瓣小组及用户相关的爬虫和请求基于和没有用高阶的诸如之类的爬虫工具所有的命令行输出都是标准的格式可以使用操作安装仅支持使用两种命令模式客户端接口调用和豆瓣模块接口

主要特性

前一阵重新组织了一下代码, 加了命令行help信息, 用起来更方便了一些

初步实现了豆瓣小组及用户相关的API爬虫和请求

基于requests和lxml, 没有用高阶的诸如scrapy之类的爬虫工具

所有的命令行输出都是标准的json格式, 可以使用jq操作

安装

仅支持python3

pip3 install --upgrade dbapi
使用

两种命令模式: 客户端接口调用和豆瓣模块接口调用

# 调用客户端自身API, 比如 dbapi use 
dbapi  [options...]

# 调用豆瓣模块API, 比如 dbapi group list_user_topics
dbapi   [options...]

查看帮助信息: 可以列出所有的命令及参数

dbapi --help

用户登录: 有两种形式, 一种是直接用用户名和密码登录, 另一种是直接使用cookie, 因为没有做验证码破解, 所以在频繁登录遇到验证码之后可以通过Chrome控制台拿到cookie之后直接丢给客户端登录

# 用户名和密码登录, 注意密码是在命令行里的, 有可能会在你的历史记录里面留下密码
# 虽然这是用户模块的命令, 但是因为是全局依赖, 所以就放到客户端里面了
dbapi login  

# 使用cookie登录, 注意cookie里面关键的session id被设置了http only, 需要到network tab下面获取
dbapi use 

刷新会话信息: 检查本地保存的会话信息是否已经过期, 会话信息会默认保存到$HOME/.__cache__dbapi.json

dbapi flush

命令列表: 目前有用户(people)模块和小组(group)模块的命令, 具体如下:

# -------- 小组部分 --------#
# 创建评论
dbapi group add_comment   
# 创建小组
dbapi group add_group 
# 创建讨论
dbapi group add_topic   <content>
# 获取讨论信息
dbapi group get_topic <topic_id>
# 申请加入小组
dbapi group join_group <group_alias> <message>
# 退出小组
dbapi group leave_group <group_alias>
# 话题点赞
dbapi group like_topic <topic_id>
# 获取评论过的话题列表
dbapi group list_commented_topics <start>
# 获取评论列表
dbapi group list_comments <topic_id> <start>
# 获取加入的小组列表
dbapi group list_joined_groups <user_alias>
# 已加入的所有小组的话题列表
dbapi group list_joined_topics <start>
# 获取点赞的话题列表
dbapi group list_liked_topics <user_alias> <start>
# 获取推荐的话题列表
dbapi group list_reced_topics <user_alias> <start>
# 获取小组话题列表
dbapi group list_topics <group_alias> <_type> <start>
# 列出用户在话题下的所有回复
dbapi group list_user_comments <topic_id> <user_alias>
# 发表的话题
dbapi group list_user_topics <start>
# 推荐话题
dbapi group rec_topic <topic_id>
# 删除评论
dbapi group remove_comment <topic_id> <comment_id> <reason> <other>
# 删除话题下所有自己的评论
dbapi group remove_commented_topic <topic_id>
# 删除小组
dbapi group remove_group <group_id>
# 删除话题
dbapi group remove_topic <topic_id>
# 搜索小组
dbapi group search_groups <keyword> <start>
# 搜索话题
dbapi group search_topics <keyword> <sort> <start>
# 喜欢话题
dbapi group undo_like_topic <topic_id>
# 取消推荐话题
dbapi group undo_rec_topic <rec_id>
# 更新话题
dbapi group update_topic <topic_id> <title> <content>


# -------- 用户部分 --------#
# 添加相册
dbapi people add_album <kwargs>
# 添加相册评论
dbapi people add_album_comment <kwargs>
# 添加照片
dbapi people add_photo <kwargs>
# 添加照片评论
dbapi people add_photo_comment <photo_id> <content>
# 添加说说
dbapi people add_status <kwargs>
# 获取相册
dbapi people get_album <album_id>
# 获取用户信息
dbapi people get_people <user_alias>
# 获取照片
dbapi people get_photo <photo_id>
# 喜欢照片
dbapi people like_photo <photo_id>
# 喜欢说说
dbapi people like_status <status_id>
# 获取相册列表
dbapi people list_albums <user_alias>
# 获取关注用户列表
dbapi people list_contacts <user_alias> <start>
# 获取照片评论列表
dbapi people list_photo_comments <photo_id> <start>
# 获取照片喜欢列表
dbapi people list_photo_likes <photo_id> <start>
# 获取照片推荐列表
dbapi people list_photo_recs <photo_id> <start>
# 获取照片列表
dbapi people list_photos <album_id>
# 获取粉丝列表
dbapi people list_rev_contacts <user_alias> <start>
# 获取说说评论列表
dbapi people list_status_comments <user_alias> <start>
# 获取说说列表
dbapi people list_statuses <user_alias> <start>
# 推荐照片
dbapi people rec_photo <photo_id>
# 删除相册
dbapi people remove_album <album_id>
# 删除相册评论
dbapi people remove_album_comment <kwargs>
# 删除照片
dbapi people remove_photo <photo_id>
# 删除照片评论
dbapi people remove_photo_comment <comment_id>
# 删除说说
dbapi people remove_status <status_id>
# 取消喜欢照片
dbapi people undo_like_photo <photo_id>
# 取消喜欢说说
dbapi people undo_like_status <status_id>
# 取消推荐照片
dbapi people undo_rec_photo <photo_id>
# 更新相册
dbapi people update_album <kwargs></pre>
</p>

<b>源代码</b>
<p>GitHub: https://github.com/acrazing/d...</p>           
               
                                           
                       
                 </div>
            
                     <div class="mt-64 tags-seach" >
                 <div class="tags-info">
                                                                                                                    
                         <a style="width:120px;" title="服务器托管" href="https://www.ucloud.cn/site/product/uhybrid.html">服务器托管</a>
                                             
                         <a style="width:120px;" title="云服务器" href="https://www.ucloud.cn/site/product/uhost.html">云服务器</a>
                                                                                                                                                 
                                      
                     
                    
                                                                                               <a style="width:120px;" title="豆瓣怎么创建小组" href="https://www.ucloud.cn/yun/tag/doubanzenmechuangjianxiaozu/">豆瓣怎么创建小组</a>
                                                                                                           <a style="width:120px;" title="python行命令" href="https://www.ucloud.cn/yun/tag/pythonxingmingling/">python行命令</a>
                                                                                                           <a style="width:120px;" title="python的命令行" href="https://www.ucloud.cn/yun/tag/pythondeminglingxing/">python的命令行</a>
                                                                                                           <a style="width:120px;" title="python写命令行" href="https://www.ucloud.cn/yun/tag/pythonxieminglingxing/">python写命令行</a>
                                                         
                 </div>
               
              </div>
             
               <div class="entry-copyright mb-30">
                   <p class="mb-15"> 文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。</p>
                 
                   <p>转载请注明本文地址:https://www.ucloud.cn/yun/42176.html</p>
               </div>
                      
               <ul class="pre-next-page">
                 
                                  <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/42175.html">上一篇:python_bomb----输入输出管理</a></li>  
                                                
                                       <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/42177.html">下一篇:8个Python高效数据分析的技巧</a></li>
                                  </ul>
              </div>
              <div class="about_topicone-mid">
                <h3 class="top-com-title mb-0"><span data-id="0">相关文章</span></h3>
                <ul class="com_white-left-mid atricle-list-box">
                             
                                                                                                    <li>
                                                <div class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/38055.html"><b><em>Python</em><em>爬虫</em>实战(4):<em>豆瓣</em><em>小组</em>话题数据采集—动态网页</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:,引言注释上一篇爬虫实战安居客房产经纪人信息采集,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功。

showImg(https://segmentfault.com/img/bVzdNZ);
1, 引言
注释:上一篇《Python爬虫实战(3):安居客房产经纪人信息采集》,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功...</p>
                                                   
                          <div class="com_white-left-info">
                                <div class="com_white-left-infol">
                                    <a href="https://www.ucloud.cn/yun/u-1061.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/10/small_000001061.jpg" alt=""><span class="layui-hide64">blastz</span></a>
                                    <time datetime="">2019-07-25 10:36</time>
                                    <span><i class="fa fa-commenting"></i>评论0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/43342.html"><b>23个<em>Python</em><em>爬虫</em>开源项目代码,包含微信、淘宝、<em>豆瓣</em>、知乎、微博等</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:今天为大家整理了个爬虫项目。地址新浪微博爬虫主要爬取新浪微博用户的个人信息微博信息粉丝和关注。代码获取新浪微博进行登录,可通过多账号登录来防止新浪的反扒。涵盖链家爬虫一文的全部代码,包括链家模拟登录代码。支持微博知乎豆瓣。

showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667);
今天为大家整...</p>
                                                   
                          <div class="com_white-left-info">
                                <div class="com_white-left-infol">
                                    <a href="https://www.ucloud.cn/yun/u-195.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/01/small_000000195.jpg" alt=""><span class="layui-hide64">jlanglang</span></a>
                                    <time datetime="">2019-07-31 10:09</time>
                                    <span><i class="fa fa-commenting"></i>评论0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/38506.html"><b>如何系统地自学 <em>Python</em>?</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:这里推荐一本书源码剖析源码剖析豆瓣这本书把源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对语言内存模型和指针有着很好的理解。

  是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?
  幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。
  Python 的设计哲学之一就是...</p>
                                                   
                          <div class="com_white-left-info">
                                <div class="com_white-left-infol">
                                    <a href="https://www.ucloud.cn/yun/u-466.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/04/small_000000466.jpg" alt=""><span class="layui-hide64">zgbgx</span></a>
                                    <time datetime="">2019-07-25 11:36</time>
                                    <span><i class="fa fa-commenting"></i>评论0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/106084.html"><b>爬<em>豆瓣</em><em>小组</em>中的租房信息(mongo+node+vue)</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:数目限制应该省略的条数数目限制排序方式函数的参数个数,必须是个,或者个。

基本思路
1.通过node中的 superagent 模拟http请求,去读取豆瓣小组的信息,对读取到的信息通过cheerio插件进行解析格式化以便于获取body中的信息存储到mongodb中
2.因为豆瓣会ban掉一写爬虫ip,所以爬取过程中会使用ip池挑选没有使用过的ip进行代理去爬取,并且会避免并发 使用m...</p>
                                                   
                          <div class="com_white-left-info">
                                <div class="com_white-left-infol">
                                    <a href="https://www.ucloud.cn/yun/u-162.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/01/small_000000162.jpg" alt=""><span class="layui-hide64">vvpvvp</span></a>
                                    <time datetime="">2019-08-26 10:23</time>
                                    <span><i class="fa fa-commenting"></i>评论0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/38102.html"><b><em>Python</em>即时网络<em>爬虫</em>项目: 内容提取器的定义(<em>Python</em>2.7版本)</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:然而,和是有区别的,即时网络爬虫项目内容提取器的定义一文的源码无法在下使用,本文将发布一个的内容提取器。

1. 项目背景
showImg(https://segmentfault.com/img/bVz5hX);
在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投...</p>
                                                   
                          <div class="com_white-left-info">
                                <div class="com_white-left-infol">
                                    <a href="https://www.ucloud.cn/yun/u-1240.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/12/small_000001240.jpg" alt=""><span class="layui-hide64">xuxueli</span></a>
                                    <time datetime="">2019-07-25 10:40</time>
                                    <span><i class="fa fa-commenting"></i>评论0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                           
                </ul>
              </div>
              
               <div class="topicone-box-wangeditor">
                  
                  <h3 class="top-com-title mb-64"><span>发表评论</span></h3>
                   <div class="xcp-publish-main flex_box_zd">
                                      
                      <div class="unlogin-pinglun-box">
                        <a href="javascript:login()" class="grad">登陆后可评论</a>
                      </div>                   </div>
               </div>
              <div class="site-box-content">
                <div class="site-content-title">
                  <h3 class="top-com-title mb-64"><span>0条评论</span></h3>   
                </div> 
                      <div class="pages"></ul></div>
              </div>
           </div>
           <div class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right">
              <div class=""> 
                <div class="com_layuiright-box user-msgbox">
                    <a href="https://www.ucloud.cn/yun/u-111.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/01/small_000000111.jpg" alt=""></a>
                    <h3><a href="https://www.ucloud.cn/yun/u-111.html" rel="nofollow">golden_hamster</a></h3>
                    <h6>男<span>|</span>高级讲师</h6>
                    <div class="flex_box_zd user-msgbox-atten">
                     
                                                                      <a href="javascript:attentto_user(111)" id="attenttouser_111" class="grad follow-btn notfollow attention">我要关注</a>
      
                                                                                        <a href="javascript:login()" title="发私信" >我要私信</a>
                     
                                            
                    </div>
                    <div class="user-msgbox-list flex_box_zd">
                          <h3 class="hpf">TA的文章</h3>
                          <a href="https://www.ucloud.cn/yun/ut-111.html" class="box_hxjz">阅读更多</a>
                    </div>
                      <ul class="user-msgbox-ul">
                                                  <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/130604.html">tensorflow</a></h3>
                            <p>阅读 1648<span>·</span>2023-04-25 14:28</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/124461.html">Centos7搭建haproxy+nginx+nfs</a></h3>
                            <p>阅读 2281<span>·</span>2021-11-23 09:51</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/123903.html">模拟信号|隔离器放大器|隔离变送器|4-20mA|0-5V|0-10V隔离|常见问题解答</a></h3>
                            <p>阅读 1685<span>·</span>2021-11-19 09:40</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/123619.html">数据结构:链表-C语言实现</a></h3>
                            <p>阅读 2598<span>·</span>2021-11-17 09:33</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/122801.html">OBHost:万圣节优惠,新加坡vps/美国vps等,大硬盘VPS/游戏服务器/站群VPS七折,最低</a></h3>
                            <p>阅读 1234<span>·</span>2021-11-02 14:48</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/113853.html">Vue.js 移动端适配之 vw 解决方案</a></h3>
                            <p>阅读 1523<span>·</span>2019-08-29 16:36</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/113563.html">Bootstrap 4重大更新,亮点解读</a></h3>
                            <p>阅读 3164<span>·</span>2019-08-29 16:09</p></li>
                                                       <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/113042.html">关于响应式设计的一些关键点</a></h3>
                            <p>阅读 2818<span>·</span>2019-08-29 14:17</p></li>
                                                
                      </ul>
                </div>
                <!-- 云社区相关服务 -->
                 
<div class="com_layuiright-box">
                  <h3 class="top-com-title"><span>云社区相关服务</span></h3> 
                    <div class="community-box flex_box flex_wrap community-box1">
                        <a href="https://www.ucloud.cn/yun/question/add.html" rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon1.png" alt="提问">
                            <span>提问</span>
                        </a>
                        <a href="https://www.ucloud.cn/yun/article"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon2.png" alt="学习">
                            <span>学习</span>
                        </a>
                        
                        <a href="https://www.ucloud.cn/yun/user/vertify.html" rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon4.png" alt="认证">
                            <span>认证</span>
                        </a>
                      
                        <a href="https://www.ucloud.cn/site/product/uhost.html?ytag=seo" rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon5.png" alt="产品">
                            <span>产品</span>
                        </a>
                        
                        <a href="https://spt.ucloud.cn/30001?ytag=seo" rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon6.png" alt="技术服务">
                            <span>技术服务</span>
                        </a>
                          <a href="https://spt.ucloud.cn/30001?ytag=seo" rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/static/theme/ukd/images/topicone-icon3.png" alt="售前咨询">
                            <span>售前咨询</span>
                        </a>
                    </div>   
                </div>                   <!-- 文章详情右侧广告-->
              
  <div class="com_layuiright-box">
                  <h6 class="top-com-title"><span>最新活动</span></h6> 
           
         <div class="com_adbox">
                    <div class="layui-carousel" id="right-item">
                      <div carousel-item>
                                                                                                                       <div>
                          <a href="https://www.ucloud.cn/site/product/uhost.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220620/Z7TLrpAi.png" alt="云服务器">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/product/uhybrid.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220620/MWraMsBh.png" alt="混合云">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/product/ucloudstack.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220620/ifzOxvjW.png" alt="私有云">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/product/utrion.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220620/VDqwC1iN.png" alt="超融合服务器">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/product/uhybrid.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220630/pJwnviKN.png" alt="服务器托管">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/product/uxzone.html"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/220630/CDb5uXxp.jpeg" alt="idc机房托管">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="https://www.ucloud.cn/site/active/network.html?ytag=seo"  rel="nofollow">
                            <img src="https://www.ucloud.cn/yun/data/attach/230227/XWsSXmvm.png" alt="专线服务">                                 
                          </a>
                        </div>
                                                                   
                    
                        
                      </div>
                    </div>
                      
                    </div>                    <!-- banner结束 -->
              
<div class="adhtml">

</div>
                <script>
                $(function(){
                    $.ajax({
                        type: "GET",
                                url:"https://www.ucloud.cn/yun/ad/getad/1.html",
                                cache: false,
                                success: function(text){
                                  $(".adhtml").html(text);
                                }
                        });
                    })
                </script>                </div>              </div>
           </div>
        </div>
      </div> 
    </section>
    <!-- wap拉出按钮 -->
     <div class="site-tree-mobile layui-hide">
      <i class="layui-icon layui-icon-spread-left"></i>
    </div>
    <!-- wap遮罩层 -->
    <div class="site-mobile-shade"></div>
    
       <!--付费阅读 -->
       <div id="payread">
         <div class="layui-form-item">阅读需要支付1元查看</div>  
         <div class="layui-form-item"><button class="btn-right">支付并查看</button></div>     
       </div>
      <script>
      var prei=0;

       
       $(".site-seo-depict pre").each(function(){
          var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">','');
          $(this).attr('data-clipboard-text',html).attr("id","pre"+prei);
          $(this).html("").append("<code>"+html+"</code>");
         prei++;
       })
           $(".site-seo-depict img").each(function(){
             
            if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){
                $(this).remove();
            }
       })
     $("LINK[href*='style-49037e4d27.css']").remove();
       $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove();
layui.use(['jquery', 'layer','code'], function(){
  $("pre").attr("class","layui-code");
      $("pre").attr("lay-title","");
       $("pre").attr("lay-skin","");
  layui.code(); 
       $(".layui-code-h3 a").attr("class","copycode").html("复制代码 ").attr("onclick","copycode(this)");
      
});
function copycode(target){
    var id=$(target).parent().parent().attr("id");
  
                  var clipboard = new ClipboardJS("#"+id);

clipboard.on('success', function(e) {


    e.clearSelection();
    alert("复制成功")
});

clipboard.on('error', function(e) {
    alert("复制失败")
});
}
//$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5));
</script>
  <link rel="stylesheet" type="text/css" href="https://www.ucloud.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css">
    <script src="https://www.ucloud.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script>
    <script src="https://www.ucloud.cn/yun/static/js/clipboard.js"></script>

<script>hljs.initHighlightingOnLoad();</script>

<script>
    function setcode(){
        var _html='';
    	  document.querySelectorAll('pre code').forEach((block) => {
        	  var _tmptext=$.trim($(block).text());
        	  if(_tmptext!=''){
        		  _html=_html+_tmptext;
        		  console.log(_html);
        	  }
    		 
    		  
    		 
      	  });
    	 

    }

</script>

<script>
function payread(){
  layer.open({
      type: 1,
      title:"付费阅读",
      shadeClose: true,
      content: $('#payread')
    });
}
// 举报
function jupao_tip(){
  layer.open({
      type: 1,
      title:false,
      shadeClose: true,
      content: $('#jubao')
    });

}
$(".getcommentlist").click(function(){
var _id=$(this).attr("dataid");
var _tid=$(this).attr("datatid");
$("#articlecommentlist"+_id).toggleClass("hide");
var flag=$("#articlecommentlist"+_id).attr("dataflag");
if(flag==1){
flag=0;
}else{
flag=1;
//加载评论
loadarticlecommentlist(_id,_tid);
}
$("#articlecommentlist"+_id).attr("dataflag",flag);

})
$(".add-comment-btn").click(function(){
var _id=$(this).attr("dataid");
$(".formcomment"+_id).toggleClass("hide");
})
$(".btn-sendartcomment").click(function(){
var _aid=$(this).attr("dataid");
var _tid=$(this).attr("datatid");
var _content=$.trim($(".commenttext"+_aid).val());
if(_content==''){
alert("评论内容不能为空");
return false;
}
var touid=$("#btnsendcomment"+_aid).attr("touid");
if(touid==null){
touid=0;
}
addarticlecomment(_tid,_aid,_content,touid);
})
 $(".button_agree").click(function(){
 var supportobj = $(this);
         var tid = $(this).attr("id");
         $.ajax({
         type: "GET",
                 url:"https://www.ucloud.cn/yun/index.php?topic/ajaxhassupport/" + tid,
                 cache: false,
                 success: function(hassupport){
                 if (hassupport != '1'){






                         $.ajax({
                         type: "GET",
                                 cache:false,
                                 url: "https://www.ucloud.cn/yun/index.php?topic/ajaxaddsupport/" + tid,
                                 success: function(comments) {

                                 supportobj.find("span").html(comments+"人赞");
                                 }
                         });
                 }else{
                	 alert("您已经赞过");
                 }
                 }
         });
 });
 function attenquestion(_tid,_rs){
    	$.ajax({
    //提交数据的类型 POST GET
    type:"POST",
    //提交的网址
    url:"https://www.ucloud.cn/yun/favorite/topicadd.html",
    //提交的数据
    data:{tid:_tid,rs:_rs},
    //返回数据的格式
    datatype: "json",//"xml", "html", "script", "json", "jsonp", "text".
    //在请求之前调用的函数
    beforeSend:function(){},
    //成功返回之后调用的函数
    success:function(data){
    	var data=eval("("+data+")");
    	console.log(data)
       if(data.code==2000){
    	layer.msg(data.msg,function(){
    	  if(data.rs==1){
    	      //取消收藏
    	      $(".layui-layer-tips").attr("data-tips","收藏文章");
    	      $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>');
    	  }
    	   if(data.rs==0){
    	      //收藏成功
    	      $(".layui-layer-tips").attr("data-tips","已收藏文章");
    	      $(".layui-layer-tips").html('<i class="fa fa-heart"></i>')
    	  }
    	})
    	 
       }else{
    	layer.msg(data.msg)
       }


    }   ,
    //调用执行后调用的函数
    complete: function(XMLHttpRequest, textStatus){
     	postadopt=true;
    },
    //调用出错执行的函数
    error: function(){
        //请求出错处理
    	postadopt=false;
    }
 });
}
</script>
<footer>
        <div class="layui-container">
            <div class="flex_box_zd">
              <div class="left-footer">
                    <h6><a href="https://www.ucloud.cn/"><img src="https://www.ucloud.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (优刻得科技股份有限公司)"></a></h6>
                    <p>UCloud (优刻得科技股份有限公司)是中立、安全的云计算服务平台,坚持中立,不涉足客户业务领域。公司自主研发IaaS、PaaS、大数据流通平台、AI服务平台等一系列云计算产品,并深入了解互联网、传统企业在不同场景下的业务需求,提供公有云、混合云、私有云、专有云在内的综合性行业解决方案。</p>
              </div>
              <div class="right-footer layui-hidemd">
                  <ul class="flex_box_zd">
                      <li>
                        <h6>UCloud与云服务</h6>
                         <p><a href="https://www.ucloud.cn/site/about/intro/">公司介绍</a></p>
                         <p><a href="https://zhaopin.ucloud.cn/" >加入我们</a></p>
                         <p><a href="https://www.ucloud.cn/site/ucan/onlineclass/">UCan线上公开课</a></p>
                         <p><a href="https://www.ucloud.cn/site/solutions.html" >行业解决方案</a></p>                                                  <p><a href="https://www.ucloud.cn/site/pro-notice/">产品动态</a></p>
                      </li>
                      <li>
                        <h6>友情链接</h6>
                                             <p><a href="https://www.surfercloud.com/">SurferCloud</a></p>
                         <p><a href="https://ucloudstack.com/" >私有云</a></p><p><a href="https://pinex.it" >pinex</a></p> <p><a href="https://www.renyucloud.com/" ></a></p>                                                                                                     <p><a href="https://www.picpik.ai" >AI Art Generator</a></p>  <p><a href="https://www.uwin-link.com" >工厂仿真软件</a></p>                           
                      </li>
                      <li>
                        <h6>社区栏目</h6>
                         <p><a href="https://www.ucloud.cn/yun/column/index.html">专栏文章</a></p>
                         <p><a href="https://www.ucloud.cn/yun/ask/">专业问答</a></p>
                         <p><a href="https://www.ucloud.cn/yun/kc.html">云学院</a></p>
                     <p><a href="https://www.ucloud.cn/yun/udata/">专题地图</a></p>                      </li>
                      <li>
                        <h6>常见问题</h6>
                         <p><a href="https://www.ucloud.cn/site/ucsafe/notice.html" >安全中心</a></p>
                         <p><a href="https://www.ucloud.cn/site/about/news/recent/" >新闻动态</a></p>
                         <p><a href="https://www.ucloud.cn/site/about/news/report/">媒体动态</a></p>                                                  <p><a href="https://www.ucloud.cn/site/cases.html">客户案例</a></p>                                                
                         <p><a href="https://www.ucloud.cn/site/notice/">公告</a></p>
                      </li>
                      <li>
                          <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="优刻得"></span>
                          <p>扫扫了解更多</p></div>
            </div>
            <div class="copyright">Copyright © 2012-2023 UCloud 优刻得科技股份有限公司<i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/">沪公网安备 31011002000058号</a><i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/"></a> 沪ICP备12020087号-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?290c2650b305fc9fff0dbdcafe48b59d";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-DZSMXQ3P9N');
</script>
<script>
(function(){
var el = document.createElement("script");
el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a";
el.id = "ttzz";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(el, s);
})(window)
</script></div> 
        </div>
    </footer>
</body>
<script src="https://www.ucloud.cn/yun/static/theme/ukd/js/common.js"></script>
<<script type="text/javascript">
$(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%");
</script>
</html>