• 注册
    • 今日签到
    • 连续签到
  • 游骑兵
    今天 00:00
    连续13
    关注
  • huiwu
    今天 01:56
    连续1
    关注
  • hanaicc
    今天 02:43
    连续3
    关注
  • xinle
    今天 04:54
    连续14
    关注
  • xinle
    很开心曾经在水晶之家与大家寻梦
    连续14
    关注
  • 连续13
    关注
  • 连续3
    关注
  • 连续1
    关注
  • 网站维护 关注:2 内容:14

    通过RSSHub我们建立了一个刘亦菲数据中心

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 以下是页面全部源码

      <?php
      /*
      Template Name: RSS数据聚合
      */
      get_header();
      ?>
      <STYLE>
      body, html { font-size: 100%; padding: 0; margin: 0;}
      /* Reset */
      *,
      *:after,
      *:before {
      -moz-box-sizing: border-box;
      }
      /* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
      .clearfix:before,
      .clearfix:after {
      content: " ";
      display: table;
      }
      .clearfix:after {
      clear: both;
      }
      body{
      font-weight: 500;
      font-size: 1.05em;
      font-family: "Microsoft YaHei","宋体","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif, FreeSans, Arimo;
      }
      a{color: #2fa0ec;text-decoration: none;outline: none;}
      a:hover,a:focus{color:#74777b;}
      .zzsc-container{
      margin: 0 auto;
      }
      .bgcolor-1 { background: #f0efee; }
      .bgcolor-2 { background: #f9f9f9; }
      .bgcolor-3 { background: #e8e8e8; }/*light grey*/
      .bgcolor-4 { background: #2f3238; color: #fff; }/*Dark grey*/
      .bgcolor-5 { background: #df6659; color: #521e18; }/*pink1*/
      .bgcolor-6 { background: #2fa8ec; }/*sky blue*/
      .bgcolor-7 { background: #d0d6d6; }/*White tea*/
      .bgcolor-8 { background: #3d4444; color: #fff; }/*Dark grey2*/
      .bgcolor-9 { background: #ef3f52; color: #fff;}/*pink2*/
      .bgcolor-10{ background: #64448f; color: #fff;}/*Violet*/
      .bgcolor-11{ background: #3755ad; color: #fff;}/*dark blue*/
      .bgcolor-12{ background: #3498DB; color: #fff;}/*light blue*/
      .bgcolor-20{ background: #494A5F;color: #D5D6E2;}
      /* Header */
      .jq22-header{
      padding: 1em 190px 1em;
      letter-spacing: -1px;
      background: #66677c;
      }
      .jq22-header h1 {
      color: #D5D6E2;
      font-weight: 600;
      font-size: 2em;
      line-height: 1;
      margin-bottom: 0;
      font-family: "Microsoft YaHei","宋体","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif, FreeSans, Arimo;
      }
      .jq22-header h1 span {
      font-family: "Microsoft YaHei","宋体","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif, FreeSans, Arimo;
      display: block;
      font-size: 60%;
      font-weight: 400;
      padding: 0.8em 0 0.5em 0;
      color: #c3c8cd;
      }
      /*nav*/
      .jq22-demo a{color: #fff;text-decoration: none;}
      .jq22-demo{width: 100%;padding-bottom: 1.2em;}
      .jq22-demo a{display: inline-block;margin: 0.5em;padding: 0.6em 1em;border: 3px solid #fff;font-weight: 700;}
      .jq22-demo a:hover{opacity: 0.6;}
      .jq22-demo a.current{background:#1d7db1;color: #fff; }
      /* Top Navigation Style */
      .jq22-links {
      position: relative;
      display: inline-block;
      white-space: nowrap;
      font-size: 1.5em;
      text-align: center;
      }
      .jq22-links::after {
      position: absolute;
      top: 0;
      left: 50%;
      margin-left: -1px;
      width: 2px;
      height: 100%;
      background: #dbdbdb;
      content: '';
      -webkit-transform: rotate3d(0,0,1,22.5deg);
      transform: rotate3d(0,0,1,22.5deg);
      }
      .jq22-icon {
      display: inline-block;
      margin: 0.5em;
      padding: 0em 0;
      width: 1.5em;
      text-decoration: none;
      }
      .jq22-icon span {
      display: none;
      }
      .jq22-icon:before {
      margin: 0 5px;
      text-transform: none;
      font-weight: normal;
      font-style: normal;
      font-variant: normal;
      font-family: 'icomoon';
      line-height: 1;
      speak: none;
      -webkit-font-smoothing: antialiased;
      }
      /* footer */
      .jq22-footer{width: 100%;padding-top: 10px;}
      .jq22-small{font-size: 0.8em;}
      /****/
      .related {
      color: #fff;
      background: #494A5F;
      font-size: 1.25em;
      padding: 0.5em 0;
      overflow: hidden;
      }
      .related > a {
      vertical-align: top;
      width: calc(100% - 20px);
      max-width: 340px;
      display: inline-block;
      text-align: center;
      margin: 20px 10px;
      padding: 25px;
      font-family: "Microsoft YaHei","宋体","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif, FreeSans, Arimo;
      }
      .related a {
      display: inline-block;
      text-align: left;
      margin: 20px auto;
      padding: 10px 20px;
      opacity: 0.8;
      -webkit-transition: opacity 0.3s;
      transition: opacity 0.3s;
      -webkit-backface-visibility: hidden;
      }
      .related a:hover,
      .related a:active {
      opacity: 1;
      }
      .related a img {
      max-width: 100%;
      opacity: 0.8;
      border-radius: 4px;
      }
      .related a:hover img,
      .related a:active img {
      opacity: 1;
      }
      .related h3{font-family: "Microsoft YaHei", sans-serif;}
      .related a h3 {
      font-weight: 300;
      margin-top: 0.15em;
      color: #fff;
      }
      /* icomoon */
      .icon-jq22-home-outline:before {
      content: "\e5000";
      }
      .icon-jq22-arrow-forward-outline:before {
      content: "\e5001";
      }
      @media screen and (max-width: 50em) {
      .jq22-header {
      padding: 3em 10% 4em;
      }
      .jq22-header h1 {
      font-size:2em;
      }
      }
      @media screen and (max-width: 40em) {
      .jq22-header h1 {
      font-size: 1.5em;
      }
      }
      @media screen and (max-width: 30em) {
      .jq22-header h1 {
      font-size:1.2em;
      }
      }.tabs-vertical{
      font: bold 17px sans-serif;
      background-color: #f7f7f7;
      box-shadow: 0 0 22px #E2E2E2 inset, 2px 2px 3px #E8E8E8;
      border: 1px solid #CECECE;
      margin: 30px auto 30px;
      max-width: 1220px;
      border-radius: 2px;
      overflow: hidden;
      text-overflow:ellipsis;
      white-space: nowrap;
      }
      /* The tabs */
      .tabs-vertical ul{
      float: left;
      list-style: none;
      text-align: left;
      margin: 0;
      padding-left: 0;
      }
      .tabs-vertical ul li{
      margin-right: -1px;
      }
      .tabs-vertical ul li a{
      display: block;
      text-decoration: none;
      color: #656a6d;
      border: 1px solid transparent;
      border-right: 0;
      border-left: 0;
      padding: 16px 40px 16px 20px;
      }
      .tabs-vertical ul li a.tab-active {
      border-color: #dddddd;
      background-color: #ffffff;
      box-shadow: 0px 2px 0px #EFEFEF;
      }
      .tabs-vertical ul li:first-child a{
      border-top: 0;
      }
      /* The content */
      .tabs-vertical .tabs-content-placeholder{
      overflow: hidden;
      border-left: 1px solid #dddddd;
      font-weight: normal;
      background-color: #fff;
      padding: 20px 40px 45px;
      margin: 0 auto;
      box-shadow: -3px 0 0px #F3F3F3;
      }
      .tabs-vertical .tabs-content-placeholder div{
      display: none;
      }
      .tabs-vertical .tabs-content-placeholder div.tab-content-active{
      display: block;
      }
      .tabs-vertical .tabs-content-placeholder div p{
      color: #565a5c;
      line-height: 1.5;
      text-align: left;
      margin: 5px 0 20px;
      }
      .tabs-vertical .tabs-content-placeholder div img{
      max-width: 100%;
      }
      @media (max-width: 600px) {
      .tabs-vertical ul{
      float: none;
      }
      .tabs-vertical ul li{
      display: inline-block;
      margin-bottom: -1px;
      }
      .tabs-vertical ul li a{
      border: 1px solid transparent;
      border-bottom: 0;
      border-top: 0;
      padding: 12px 15px;
      }
      .tabs-vertical ul li a.tab-active {
      border-color: #dddddd;
      background-color: #ffffff;
      box-shadow: 2px 0px 0px #EFEFEF;
      }
      .tabs-vertical ul li:first-child a{
      border-left: 0;
      }
      .tabs-vertical .tabs-content-placeholder{
      padding: 15px 30px 30px;
      border-left: 0;
      border-top: 1px solid #dddddd;
      box-shadow: 0px -3px 0px #F3F3F3;
      }
      }
      </STYLE>
      <div class="pagewrapper clearfix">
      <BR><CENTER><H2>站外刘亦菲数据读取中心</H2></CENTER>
      <hr size="1" noshade style="border:1px dotted red">
      &nbsp;&nbsp;&nbsp;&nbsp;页面数据都是动态抓取的,五分钟缓存更新数据一次。你所看的内容均为最新。因为是通过第三方获取到的数据,可能会遭遇反爬屏蔽。项目来源:<A HReF="https://github.com/DIYgod/RSSHub" target="_blank"><FONT COLOR="010418"font-weight="bold">RSSHub</font></A>
      <div class="jq22-container">
      <div class="tabs-vertical">
      <ul>
      <li>
      <a class="tab-active" data-index="0" href="#">百度菲吧</a>
      </li>
      <li>
      <a data-index="1" href="#">茜茜微博</a>
      </li>
      <li>
      <a data-index="2" href="#">哔哩话题</a>
      </li>
      <li>
      <a data-index="3" href="#">微博热搜</a>
      </li>
      <li>
      <a data-index="4" href="#">菲吧微博</a>
      </li>
      <li>
      <a data-index="5" href="#">贴吧精品</a>
      </li>
      <li>
      <a data-index="6" href="#">微博话题</a>
      </li>
      <li>
      <a data-index="7" href="#">知乎话题</a>
      </li>
      </ul>
      <div class="tabs-content-placeholder">
      <div class="tab-content-active"><?php
      //RSS源地址列表数组
      $rssfeed = array(
      "http://47.98.191.188:1200/tieba/forum/%E5%88%98%E4%BA%A6%E8%8F%B2/?limit=25",
      "http://47.98.191.188:1200/weibo/user2/3261134763",
      "http://47.98.191.188:1200/bilibili/topic/%E5%88%98%E4%BA%A6%E8%8F%B2",
      "http://47.98.191.188:1200/weibo/search/hot",
      "http://47.98.191.188:1200/weibo/user2/1765462132",
      "http://47.98.191.188:1200/tieba/forum/good/%E5%88%98%E4%BA%A6%E8%8F%B2/?limit=25",
      "http://47.98.191.188:1200/weibo/keyword/%E5%88%98%E4%BA%A6%E8%8F%B2",
      "http://47.98.191.188:1200/zhihu/topic/19589214",
      );
      //设置编码为UTF-8
      Header('content-type:text/html;Charset=utf-8');
      //解决PHP显示Warning和Notice等问题
      ini_set("display_errors", 0);
      error_reporting(E_ALL ^ E_NOTICE);
      error_reporting(E_ALL ^ E_WARNING);
      for ($i = 0; $i < sizeof($rssfeed); $i++) {
      //分解开始
      $buff = "";
      $rss_str = "";
      //打开rss地址,并读取,读取失败则中止
      $fp = fopen($rssfeed[$i], "r") or die("无法打开该网站Feed");
      while (!feof($fp)) {
      $buff .= fgets($fp, 4096);
      }
      //关闭文件打开
      fclose($fp);
      //建立一个 XML 解析器
      $parser = xml_parser_create();
      //xml_parser_set_option -- 为指定 XML 解析进行选项设置
      xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
      //xml_parse_into_struct -- 将 XML 数据解析到数组$values中
      xml_parse_into_struct($parser, $buff, $values, $idx);
      //xml_parser_free -- 释放指定的 XML 解析器
      xml_parser_free($parser);
      foreach ($values as $val) {
      $tag = $val["tag"];
      $type = $val["type"];
      $value = $val["value"];
      //标签统一转为小写
      $tag = strtolower($tag);
      if ($tag == "item" && $type == "open") {
      $is_item = 1;
      } else if ($tag == "item" && $type == "close") {
      //构造输出字符串
      $rss_str .= "<a href='" . $link . "' target=_blank>" . $title . "</a><br />";
      $is_item = 0;
      }
      //仅读取item标签中的内容
      if ($is_item == 1) {
      if ($tag == "title") {$title = $value;}
      if ($tag == "link") {$link = $value;}
      if ($tag == "pubDate") {$pubDate = $value;}
      }
      }
      //输出结果
      echo $rss_str ;
      echo ' </div>
      <div>';
      }
      ?>
      </div>
      </div>
      </div>
      </div>
      <script>
      $(document).ready(function() {
      var widget = $('.tabs-vertical');
      var tabs = widget.find('ul a'),
      content = widget.find('.tabs-content-placeholder > div');
      tabs.on('click', function (e) {
      e.preventDefault();
      // Get the data-index attribute, and show the matching content div
      var index = $(this).data('index');
      tabs.removeClass('tab-active');
      content.removeClass('tab-content-active');
      $(this).addClass('tab-active');
      content.eq(index).addClass('tab-content-active');
      });
      });
      </script>
      </body>
      </html>

      因为RSShub是基于 node.js环境的项目,必须先安装对应的环境将项目建立起来。

      在项目成功启用后,在利用PHP对rss内容进行解析。然后展现数据出来即可

      回复
      你需要登录,才能进行发帖操作
    • 帖子间隔 侧栏位置: