PHP爬虫 随机爬取美图录的一张图片
时间:2019-01-31
本文章向大家介绍PHP爬虫 随机爬取美图录的一张图片,主要包括PHP爬虫 随机爬取美图录的一张图片使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<?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">';
?>
演示地址:https://www.liulangboy.com/tools/02/get-meitulu-pic.php
- java 脚本引擎
- 不怕学不会 使用TensorFlow从零开始构建卷积神经网络
- 微信公众平台增加批量获取用户基本信息接口
- 谈网络适配器
- 【框架】为降低机器学习开发者门槛,苹果发布了Turi Create框架
- 新闻数据库分表案例
- 建立智能的解决方案:将TensorFlow用于声音分类
- Plugin Hook 设计与实现
- 数据与应用程序间通信·UDP Socket
- Java 数据类型转换
- Spring boot with Scheduling
- Spring Properties 文件读取
- 【学术】你真的知道什么是随机森林吗?本文是关于随机森林的直观解读
- Spring boot 将 Session 放入 Redis
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 前端黑魔法之远程控制地址栏
- 攻击LNMP架构Web应用的几个小Tricks
- Hbase-2.0.0_02_常用操作
- phpjiami 数种解密方法
- Hbase-2.0.0_03_Hbase数据模型
- ELK-elasticsearch-6.3.2部署
- Real World CTF 2018 bookhub 总结
- python http.server open redirect vulnerability
- ELK-elasticsearch-6.3.2插件【head,bigdesk,cerebro[kopf]】安装
- ELK-kibana-6.3.2部署
- node.js + postgres 从注入到Getshell
- ELK-logstash-6.3.2部署
- K8S节点异常怎么办?TKE"节点健康检查和自愈"来帮忙
- ELK-logstash-6.3.2-常用配置
- ELK-elkstack-使用消息队列