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

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

  •  
  •   Liulang007 · 233 天前 · 2426 次点击
    这是一个创建于 233 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?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
        1
    rekulas   233 天前
    这代码对我来说毫无价值,不过这网站不错收藏了。。。
        2
    eW91IHNlZSBtZQ   232 天前   ♥ 1
        3
    wensonsmith   232 天前
    楼上要不要这么直接, 我想说这代码写的非常好,我选择打开网站
        4
    zhoujunjie221   232 天前   ♥ 1
    你们口味真重。反手就是一个网址:aHR0cCUzQS8vdjIubW14eXoubmV0
        5
    rooob1   231 天前
    @zhoujunjie221 点个赞
        6
    gongcheng121   231 天前
    @zhoujunjie221 哈哈,隐藏的挺好
        7
    dd0754   227 天前 via iPhone
    网址收藏了
        8
    Thresh   221 天前
    ....真厉害.... 你自己写的么
    @zhoujunjie221
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1289 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 17:31 · PVG 01:31 · LAX 10:31 · JFK 13:31
    ♥ Do have faith in what you're doing.