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

关于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号规定,传播淫秽色情内容是非法的。

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

更新日志

2019-3-19:官方封堵,增加一些绕过措施

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

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

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

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

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

讨论区 113

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

    买一份源码 QQ2121872416

    QQ21218724163周前 (05-06)回复
  2. #44

    大佬,能不能发下最新的源码

    tcc3周前 (05-03)回复
  3. #43

    求一份最新源码[email protected]

    4周前 (04-27)回复
  4. #42

    求最新代码!

    铜火锅1个月前 (04-16)回复
  5. #41

    同求代码

    蛋筒1个月前 (04-15)回复
  6. #40

    老大能发我一份最新的源码吗?万分感谢

    谢谢2个月前 (04-09)回复
  7. #39

    年前看博主搞得,我自己GIT了个,前几天发现不行了~~~干脆自己重写了一个,PC移动都兼容

    Small Desert2个月前 (04-06)回复
  8. #38

    怎么安装到手机上面?我下载好了,没有APK

    112个月前 (03-30)回复
    • 手机浏览器访问网页就行,没做客户端

      岩兔站2个月前 (04-02)回复
  9. #37

    可以用querylist配合无头浏览器直接抓取渲染过js的video,这样就可以解析了。。。我就是这么做的

    tatoto2个月前 (03-27)回复
  10. #36

    一直在用http://192.240.120.34//mp43/xxx.mp4这个网址看视频,挺好用的,现在也被封了

    91p2个月前 (03-26)回复
    • 这个不行了么……我再找找可用IP替换一下

      岩兔站2个月前 (03-27)回复
  11. #35

    github上的源码是不可用的代码吗?

    91大炮哥2个月前 (03-25)回复
    • 官方封的厉害,规则也在变,目前不可用

      岩兔站2个月前 (03-27)回复
  12. #34

    博主有的视频不能播放,是什么情况呢?可有解决办法?

    奶鱼2个月前 (03-22)回复
    • 官方提供了多个服务器,每次刷新会随机给一个。遇到不能播的,刷新可能会好

      岩兔站2个月前 (03-24)回复
  13. #33

    请教一个问题,希望博主能传授学习?先谢谢。你是如何做到播放页面video.php?url=1643737这样的呢!我门都是超长的一端连接

    王炸2个月前 (03-19)回复
    • 好长一段链接的有效部分也只有最后的key。只把key传过去,接收后再组合成完整URL就行

      岩兔站2个月前 (03-24)回复
  14. #32

    已经失效了,博主,可有解决办法?

    下来临3个月前 (03-10)回复
    • 修了一下,官方规则老是变动,这段时间不稳

      岩兔站2个月前 (03-19)回复
      • 能请教下 是用的php CURL吗??

        王炸2个月前 (03-25)回复
  15. #31

    老大 能不能传一下最新源码上去啊 或者单独发我一份,我花点钱也可以 企鹅3323053209

    lcz3个月前 (02-17)回复
  16. #30

    大佬的网站广告是挂的联盟么 能推荐下不

    黑桃K4个月前 (02-01)回复
  17. #29

    为什么你的图片是清晰的 我们的都跟打马赛克一样啊。。求指教

    王炸4个月前 (01-19)回复
    • 参考8楼大佬提供的方法

      岩兔站4个月前 (01-19)回复
      • 是在 css里吗?

        兔兔3个月前 (02-24)回复
        • 对,替换一下css里的图片路径就行

          岩兔站3个月前 (02-24)回复
  18. #28

    91国内网址是多少,这个地址怕是失效了
    9和1谐p和o谐r和n谐.com

    小航4个月前 (01-15)回复
    • 岩兔站一般是科学上学,没搜集过免番地址……

      岩兔站4个月前 (01-16)回复
  19. #27

    用Github的代码建出的和演示网站有些不一样啊……?

    用Github的代码建出的和演示网站有些不一样啊4个月前 (01-15)回复
  20. #26

    期待增加搜索功能

    马化腾5个月前 (12-28)回复
    • 搜索要会员登录…还没找到绕过的办法

      岩兔站5个月前 (12-29)回复
  21. #25

    站长你好,一直关注这个程序中 我想请问是如何抓取分类的

    王炸5个月前 (12-23)回复
    • 分类不同,就是url参数不同,抓取方式一样

      岩兔站5个月前 (12-23)回复
      • 好的谢谢站长回答,不过我是小白。能详细点吗?我在functions.php已经发呆一个小时了

        王炸5个月前 (12-23)回复
        • getlist方法里重新组合url就行

          岩兔站5个月前 (12-23)回复
          • 弄来弄去还是没弄懂啊 辛苦作者能发一份过来吗?[email protected]

            王炸5个月前 (12-24)
          • 暂时不开源了,抱歉

            岩兔站5个月前 (12-24)
          • 把分类页分享一下就好了呀。。

            王炸5个月前 (12-24)
  22. #24

    版主 对于小白 这个东西应该怎么用啊

    blz5个月前 (12-19)回复
    • 打算做一个app了,小白装上就能用

      岩兔站5个月前 (12-19)回复
  23. #23

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

    [email protected]6个月前 (12-10)回复
  24. #22

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

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

      岩兔站6个月前 (12-10)回复
  25. #21

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

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

      岩兔站6个月前 (12-10)回复
  26. #20

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

    王炸6个月前 (12-03)回复
  27. #19

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

    王炸6个月前 (12-01)回复
  28. #18

    新版放出来啊,给群

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

      岩兔站6个月前 (11-28)回复
  29. #17

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

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

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

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

        王康6个月前 (11-20)回复
  30. #16

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

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

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

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

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

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

      岩兔站6个月前 (11-18)回复
  31. #15

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

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

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

        aklulu6个月前 (11-15)回复
  32. #14

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

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

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

      岩兔站7个月前 (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

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

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

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

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

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

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

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

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

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

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

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

      呵呵7个月前 (10-16)回复
  34. #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
    点击确定就提示这个错误,什么原因

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

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

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

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

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

        andy8个月前 (09-17)回复
  36. #10

    好像失效了,楼主

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

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

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

    Notice: The received content is empty!

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

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

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

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

    怎么变乱码了。。。?

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

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

        phper1年前 (2018-05-23)回复
  40. #6

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

    phper1年前 (2018-05-22)回复
  41. #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);

    phper1年前 (2018-05-22)回复
  42. #4

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

    phper1年前 (2018-05-22)回复
    • 额,我也感觉在作死……有点害怕

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

        phper1年前 (2018-05-22)回复
      • 排版有问题?

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

        phper1年前 (2018-05-22)回复
  43. #3

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

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

      岩兔站1年前 (2018-04-20)回复
  44. #2

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

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

      岩兔站1年前 (2018-04-20)回复
  45. #1

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

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

      岩兔站1年前 (2018-04-17)回复