首页
社区
课程
招聘
[原创]PHP爬虫 随机爬取美图录的一张图片
发表于: 2019-1-31 16:20 5607

[原创]PHP爬虫 随机爬取美图录的一张图片

2019-1-31 16:20
5607
<?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">';
 
?>


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 63
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么多分类,
分类 = [
     女神, '极品', '嫩模', '网络红人', '风俗娘', '气质', '尤物',
    '爆乳', '性感', '诱惑', '美胸', '少妇', '长腿', '萌妹子',
    '萝莉', '可爱', '户外', '比基尼', '清纯', '唯美', '清新'];
总有一款适合你。
PHP果然是世界上最好的语言。
2019-1-31 16:44
1
雪    币: 137
活跃值: (402)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2019-1-31 17:18
1
游客
登录 | 注册 方可回帖
返回
//