V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Liulang007
V2EX  ›  分享创造

PHP 爬虫 随机爬取美图录的一张图片

  •  
  •   Liulang007 · 2019-01-31 16:16:43 +08:00 · 5449 次点击
    这是一个创建于 2131 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php
     
    require 'phpQuery.php';
     
    // 主体域名
    $basicUrl = 'https://www.meitulu.com/';
     
    // 分类名称
    $category = array('nvshen', 'jipin', 'nenmo', 'wangluohongren', 'fengsuniang', 'qizhi', 'youwu',
        'baoru', 'xinggan', 'youhuo', 'meixiong', 'shaofu', 'changtui', 'mengmeizi',
        'loli', 'keai', 'huwai', 'bijini', 'qingchun', 'weimei', 'qingxin');
     
    // 爬虫代码
    function curl($url, $referer, $download)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_TIMEOUT, 2);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: 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'));
        curl_setopt($ch, CURLOPT_REFERER, $referer);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_REDIR_PROTOCOLS, -1);
        $contents = curl_exec($ch);
        curl_close($ch);
        if ($download) {
            $resource = fopen('default.jpg', 'w');
            fwrite($resource, $contents);
            fclose($resource);
            return;
        }
        return $contents;
    }
     
    $count = 10;
     
    // 随机分类
    while ($count > 0) {
        $afterUrl = $basicUrl . 't/' . $category[rand(0, count($category) - 1)] . '/' . rand(2, 5) . '.html';
        $html = curl($afterUrl, $afterUrl, false);
        if (strlen($html) != 0) {
            break;
        }
        $count--;
    }
     
    if($count == 0){
        echo '爬取失败!';
        exit;
    }
     
    $count = 10;
     
    $afterUrlTmp = $afterUrl;
    $eg = phpQuery::newDocument($html);
    $links = pq('ul.img > li > a');
     
    // 随机套图
    $afterUrl = '';
    for ($i = 0; $i < count($links); $i++) {
        $afterUrl = $links->eq($i)->attr('href');
        if (strpos($afterUrl, 'item' !== false)) {
            if (strpos($afterUrl, 'https' == false)) {
                $afterUrl = 'https://www.meitulu.com' + $afterUrl;
            }
            $html = curl($afterUrl, $afterUrlTmp, false);
            if (strlen($html) != 0) {
                break;
            }
        }
    }
     
    $html = curl($afterUrl, $afterUrlTmp, false);
    $eg = phpQuery::newDocument($html);
    $img = pq('img.content_img');
     
    $afterUrlTmp = $afterUrl;
     
    // 随机图片
    while ($count > 0) {
        $afterUrl = $img->eq(rand(0, count($img) - 1))->attr('src');
        if (strlen($afterUrl) != 0) {
            break;
        }
        $count--;
    }
     
    if($count == 0){
        echo '爬取失败!';
        exit;
    }
     
    curl($afterUrl, $afterUrlTmp, true);
    echo '<img src="default.jpg">';
     
    ?>
    

    PHP 爬虫 随机爬取美图录的一张图片

    演示地址:https://www.liulangboy.com/tools/02/get-meitulu-pic.php

    8 条回复    2019-02-12 10:40:46 +08:00
    rekulas
        1
    rekulas  
       2019-01-31 17:43:44 +08:00
    这代码对我来说毫无价值,不过这网站不错收藏了。。。
    eW91IHNlZSBtZQ
        2
    eW91IHNlZSBtZQ  
       2019-02-01 10:59:13 +08:00   ❤️ 1
    wensonsmith
        3
    wensonsmith  
       2019-02-01 16:36:45 +08:00
    楼上要不要这么直接, 我想说这代码写的非常好,我选择打开网站
    richChou
        4
    richChou  
       2019-02-01 18:24:06 +08:00   ❤️ 1
    你们口味真重。反手就是一个网址:aHR0cCUzQS8vdjIubW14eXoubmV0
    rooob1
        5
    rooob1  
       2019-02-02 09:03:48 +08:00
    @zhoujunjie221 点个赞
    gongcheng121
        6
    gongcheng121  
       2019-02-02 17:02:57 +08:00
    @zhoujunjie221 哈哈,隐藏的挺好
    dd0754
        7
    dd0754  
       2019-02-06 12:55:04 +08:00 via iPhone
    网址收藏了
    Thresh
        8
    Thresh  
       2019-02-12 10:40:46 +08:00
    ....真厉害.... 你自己写的么
    @zhoujunjie221
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 11:20 · PVG 19:20 · LAX 03:20 · JFK 06:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.