先直接上代码
<?php
function http_post_json($url, $post_data)
{
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
// var_dump($post_data);die();
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
// var_dump($data);
return $data;
}
function download($url, $path = './images/')
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$file = curl_exec($ch);
curl_close($ch);
$filename = pathinfo($url, PATHINFO_BASENAME);
// echo $filename;
$resource = fopen($path . $filename, 'a');
fwrite($resource, $file);
fclose($resource);
}
$url = 'https://m.douyu.com/roomlists'; //斗鱼接口
for($i=1;$i<100;$i++){
$data = array('type'=>'yz','page'=>$i); //调数据
$pic_data = http_post_json($url,$data);
// var_dump($pic_data);
$pattern = '/<img src="(.*)" class="live-feature">/';
preg_match_all($pattern, $pic_data,$subject);
foreach($subject[1] as $v){
download($v);
}
}