一个乐于分享的博客
关注互联网折腾服务器分享码农的日常

关于91视频解析的一些说明

关于91视频解析的一些说明

熟悉这个页面的老司机就无需多言,不熟悉的请移步GitHub:91`P-o~r_nMobile(91`P-o~r_n手机版,无多余信息,突破游客每天只能看10次的限制。)。

由于项目主页上留了博客地址,所以很多从GitHub来的小伙伴都会搜索一下“91”或者翻找一下关于该项目的介绍。搜索不到,乃们心里肯定会很失落啊,所以我现在补上这篇文章。

套用快播王欣的一句话:技术本身是无罪的!所以希望大家撸过之后能好好看一看代码,学好知识本领大啊!

为什么现在才写

博主打算做一个正经的技术交流网站啊!

我的网站托管在国内腾讯云,也是备过案的啊!!

污七八糟的东西是要和谐的啊!!!

博主胆小也不敢放啊!!!!

关于本项目

我忘了当时为啥要做这么个东西,可能连脑子一热的过程就没有,然后就开始写了。

博主甚至没学过PHP,只会一点简单的C#知识,因为手头有Linux环境,所以只能用PHP实现。由于要抓取页面内容,博主还学习了PHP的采集知识

等项目几乎做完了,又发现原来目标网站限制游客每天只能访问10次。

最一开始想到的是代理服务器,通过切换代理突破限制,并且把代理获取到的视频地址缓存起来,供下次直接访问。

后来发现很难找到大量稳定的代理地址,就顺便研究了伪造HTTP头信息以不同的IP地址访问目标网站,到这总算是能比较顺畅的使用了。

开源态度

博主做这个项目也是把学到的东西做一个整合,形成真实可用的项目。

学会了解决问题的思路,就可以解决同类型的其他问题,这也是我项目开源,让更多人学习的意义。

但是开源并不等于滥用,所以转载的务必注明出处,让更多人了解到项目源码。

一些忠告

根据《中华为民共和国XX法》第XX条XX号规定,传播淫秽色情内容是非法的。

所以下载了代码自己部署的朋友请不要触犯国家法律。

更新日志

2018-11-24:感谢@王斯科提供VIP通道,增加进入VIP通道功能。

2018-10-23:@灿胤建议,增加“最新”,“最热”等筛选,视频下方新增作者,观看次数等信息。

2018-06-15:经@唯一度博客提醒,修改了缩略图地址,显示图片为高清图。修复播放器不能快进的问题。

2018-06-10:墙内地址显示不了缩略图,增加了图片代理。

转载务必注明出处:岩兔站 » 关于91视频解析的一些说明
赞 (32) or 打赏

讨论区 64

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #23

    版主你好!求帮忙解决这个网站的问题!有偿!抠抠3108968270(请备注:9)

    3108968270@qq.com1周前 (12-10)回复
  2. #22

    第二页解析不到真实地址!导致获取失败!求解!!!

    星光1周前 (12-10)回复
    • 检查网络环境、墙、PHP版本、https这些

      岩兔站1周前 (12-10)回复
  3. #21

    第二页就获取失败!求新版!!!

    星光1周前 (12-10)回复
    • 新版旧版一个样,获取方法没有变

      岩兔站1周前 (12-10)回复
  4. #20

    这个站不就失去了很多乐趣了吗。。 一直关注你这个程序。现在嗝屁了

    王炸2周前 (12-03)回复
  5. #19

    随便放在哪里都可以 希望能放出来。。有没有广告都一样

    王炸2周前 (12-01)回复
  6. #18

    新版放出来啊,给群

    额额3周前 (11-28)回复
    • 本地代码全放广告了,不能传Github……

      岩兔站3周前 (11-28)回复
  7. #17

    为啥第二页的就解析不到东西了呢?

    王康4周前 (11-19)回复
    • 看看错误提示,可能缺少php组件,可能因为墙

      岩兔站4周前 (11-20)回复
      • 获取失败,请重新再试

        王康4周前 (11-20)回复
      • 就是解析不到真实的地址了

        王康4周前 (11-20)回复
  8. #16

    在国内部署怎么搞,获取不到91的视频
    91/lib/QueryList.php on line 193
    我也整了https

    呃哈1个月前 (11-16)回复
    • 原网站国内访问不到,所以必须用免翻地址

      岩兔站1个月前 (11-16)回复
      • 啥免番地址,必须用国外主机啊?

        呃哈1个月前 (11-17)回复
        • 嗯,国外主机最好

          岩兔站1个月前 (11-17)回复
          • 那国内的要怎样才能用?

            呃哈4周前 (11-18)
    • 把代码中的91官方地址替换成国内能打开的免翻地址即可

      岩兔站4周前 (11-18)回复
  9. #15

    现在github不是最新的源码么,能提供一份新的源码不?站长老大

    aklulu1个月前 (11-11)回复
    • 加了一些广告…没脸更新github了

      岩兔站1个月前 (11-14)回复
      • ….想要一份,=.=

        aklulu1个月前 (11-15)回复
  10. #14

    你好大佬,请教下我部署在国外了,进入页面后是空白,没有视屏资料列表,请问下如何处理和排错 感谢

    jc2个月前 (10-21)回复
    • PHP版本7.0+,排除语法错误问题
      确保服务器能访问源网站
      最好开启https避免一些问题
      直接访问https://ip/list.php

      都不行的话打开PHP错误输出,看有没有什么报错

      岩兔站2个月前 (10-21)回复
      • 1.确定可以访问
        2.已经添加了ssl
        3.直接访问也是空白

        这是日志
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined index: jinghua in /data/mystack/vdirs/abc.web.com/www/91/functions.php on line 12
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1139
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errstr in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1140
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Warning: fsockopen() has been disabled for security reasons in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1141
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1151
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1154
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1156
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1158
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: Undefined variable: errno in /data/mystack/vdirs/abc.web.com/www/91/lib/Snoopy.class.php on line 1161
        [23-Oct-2018 18:07:45 Asia/Shanghai] PHP Notice: The received content is empty! in /data/mystack/vdirs/abc.web.com/www/91/lib/QueryList.php on line 193

        jc2个月前 (10-23)回复
      • 是不是缺少什么php扩展?

        jc2个月前 (10-23)回复
    • Notice都可以忽略,看提示是不支持fsockopen()方法,所以无法从源网站获取内容。

      岩兔站2个月前 (10-23)回复
  11. #13

    部署到国外服务器点击确定后,就找不到页面,连接不上了w.a88.xyz

    scy2个月前 (10-12)回复
    • 我试了,可以的。首页的地址只能写一个…

      岩兔站2个月前 (10-13)回复
      • 能否说下这个问题怎么解决吗。 修改那里呀。 我也是这个原因哈。。。

        呵呵2个月前 (10-16)回复
        • 直接访问http://w.a88.xyz/list.php也行,还有一些奇怪的问题可以通过启用https解决

          岩兔站2个月前 (10-16)回复
          • 是有些很奇怪的问题。我用苹果的浏览器访问就可以,然后用google 访问的话怎么也不行。。 我改下https 试试

            呵呵2个月前 (10-16)
          • 还有大佬的dmm那个开源也是类似和这个一样直接搭建就可以了吧,我刚才composer 提示需要PHP7。。。想问下这个在php 7上面不会报错吧。。

            呵呵2个月前 (10-16)
          • 嗯,因为使用的第三方库需要PHP7……部署好了环境,直接解压代码就行了

            岩兔站2个月前 (10-16)
    • 我也遇到了这个问题。你是怎么解决的呢。

      呵呵2个月前 (10-16)回复
  12. #12

    Notice: Undefined index: jinghua in E:\functions.php on line 12

    Notice: The received content is empty! in E:\lib\QueryList.php on line 193
    点击确定就提示这个错误,什么原因

    scy2个月前 (10-11)回复
    • 是不是部署到国内服务器了?访问不到原网站导致的

      岩兔站2个月前 (10-12)回复
  13. #11

    楼主,我用了这个获取列表的时候标题都是英文了。。。。
    这个有什么解决的办法?

    andy3个月前 (09-17)回复
    • 原网站是根据客户端浏览器自动显示中英文的。可以尝试调整function.php里getHtml()方法的请求头信息,伪装中文。

      岩兔站3个月前 (09-17)回复
      • 默认zh-cn。。。。我都不知道调成什么,唉,,,是不是和伪装的ip有关系???

        andy3个月前 (09-17)回复
  14. #10

    好像失效了,楼主

    aklulu3个月前 (09-12)回复
    • 视频内容都是引用的原网站,多半是墙的原因导致的无法正常使用

      岩兔站3个月前 (09-13)回复
  15. #9

    跑不起来了么= =。老报错

    Notice: The received content is empty!

    唯一5个月前 (07-25)回复
    • Notice可以忽略,放国外服务器试试

      岩兔站5个月前 (07-26)回复
  16. #8

    thumb/1_269085.jpg,把 1_这个参数去掉,变成thumb/269085.jpg,图片会变大哦。还有2_,3_

    唯一度博客6个月前 (06-14)回复
  17. #7

    怎么变乱码了。。。?

    phper7个月前 (05-22)回复
    • 代码太多了,留言区好像不太支持。
      我在后台看了看代码,但楼主也是新手,也看不太懂……
      如果是想爬视频的话,用python实现感觉更适合一些,GitHub也有很多现成的项目,推荐一个https://github.com/eqblog/91_porn_spider

      岩兔站7个月前 (05-22)回复
      • python需要安装第三方库,麻烦。。。其实以前我也写python代码。。。

        phper7个月前 (05-23)回复
  18. #6

    刚才写了个自动爬的。。。ORZ。。。

    phper7个月前 (05-22)回复
  19. #5

    loadHTML($txt);

    $xpath = new DomXpath($dom);
    $listchannels = $xpath->query(‘//*[@class=”listchannel”]’);

    $vurls = [];
    for ($i = 0; $i length; $i++) {
    $listchannel = $listchannels->item($i);
    $hrefs = $listchannel->getElementsByTagName(‘a’);
    for ($j = 0; $j length; $j++) {
    $href = $hrefs->item($j);
    if ($href->hasAttribute(‘title’)) {
    $vurls[] = $href->getAttribute(‘href’);
    break;
    }
    }
    }
    return $vurls;
    }

    function tool_fetch_video_and_thumb($url, $base)
    {
    $txt = tool_page_fetch($url, $base);
    $dom = new DOMDocument();
    @$dom->loadHTML($txt);

    $xpath = new DomXpath($dom);
    $titles = $xpath->query(‘//*[@id=”viewvideo-title”]’);
    $videos = $xpath->query(‘//*[@id=”vid”]’);
    $sources = $dom->getElementsByTagName(‘source’);

    $title = trim($titles->item(0)->textContent);
    $thumb = $videos->item(0)->getAttribute(‘poster’);
    $source = $sources->item(0)->getAttribute(‘src’);

    tool_log(‘—————————————————————-‘);
    tool_log(‘title : ‘ . $title);
    tool_log(‘url : ‘ . $url);
    tool_log(‘thumb : ‘ . $thumb);
    tool_log(‘video : ‘ . $source);

    $thumb_ext = pathinfo($thumb, PATHINFO_EXTENSION);
    $source_ext = pathinfo(substr($source, 0, strpos($source, ‘?’)), PATHINFO_EXTENSION);

    $path = __DIR__ . ‘/videos/’ . $title;

    if (is_dir($path)) {
    tool_log(‘skip…’);
    return;
    }
    @mkdir($path);

    for ($i = 0; $i <= 10; $i++) {
    $thumb_data = tool_data_fetch($thumb, $url);
    if (!empty($thumb_data)) {
    file_put_contents($path . '/poster.' . $thumb_ext, $thumb_data);
    break;
    }
    }
    $ip = tool_random_ip();
    $cmd = 'axel -n 20 -o "' . ($path . '/video.' . $source_ext) . '" "' . $source . '"'
    . ' -U "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4"'
    . ' -H "Referer: ' . $url . '"'
    . ' -H "CLIENT-IP:' . $ip . '"'
    . ' -H "X-FORWARDED-FOR:' . $ip . '"';
    exec($cmd);
    }

    function main($argc, $argv)
    {
    $msg = '使用方法: php ' . pathinfo(__FILE__, PATHINFO_BASENAME) . ' 主地址如https://www.baidu.com/';
    if ($argc < 2) {
    tool_log("参数错误!\n" . $msg);
    return;
    }
    $base = $argv[1];

    @mkdir(__DIR__ . '/videos');

    for ($p = 1; $p <= 50; $p++) {
    $vurls = tool_fetch_page($base, $p);
    foreach ($vurls as $vurl) {
    tool_fetch_video_and_thumb($vurl, $base);
    }
    }
    }

    main($argc, $argv);

    phper7个月前 (05-22)回复
  20. #4

    大驾是在国外么?感觉还是作死呢?

    phper7个月前 (05-22)回复
    • 额,我也感觉在作死……有点害怕

      岩兔站7个月前 (05-22)回复
      • 我这个自动爬的,纯属学习类型的。。。不带任何XXX。。。。

        phper7个月前 (05-22)回复
      • 排版有问题?

        phper7个月前 (05-22)回复
      • 在php-cli下工作的,但是需要axel工具。。。php直接download,不晓得为啥不行。。。ORZ。。。

        phper7个月前 (05-22)回复
  21. #3

    我是部署在国外服务器的,但不能直接打开,list.php打不开不全

    狮子8个月前 (04-19)回复
    • 试试用https访问,好多稀奇古怪的问题都能通过https解决。

      岩兔站8个月前 (04-20)回复
  22. #2

    代理服务器怎么设啊?阉割了?

    狮子8个月前 (04-19)回复
    • 代理最初为了伪造IP,但一直没找到稳定的代理列表,所以放弃了

      岩兔站8个月前 (04-20)回复
  23. #1

    如果是国内服务器如何操作呢?

    18个月前 (04-17)回复
    • 用免番地址可以,国内注意遵守国家法律

      岩兔站8个月前 (04-17)回复