php脚本爬取头像图片

2023-12-21 03:58
文章标签 php 脚本 爬取 头像图片

本文主要是介绍php脚本爬取头像图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为要插入系统用户,所以用php爬取百度图片上的头像url,再存储到本地,速度一般,1000张图片差不多花费半个多小时,不知道是不是因为 file_get_content 函数的缘故,或者是没有开多线程 php-fpm , 没有仔细研究优化,提高脚本速度可以从多线程和异步网络请求然后回调去解决。一下是代码
<?php
error_reporting(E_ALL ^ E_NOTICE);
set_time_limit(0);$pageNum = 3;
//获取数据
for ($page=0; $page < $pageNum; $page++) {//翻页数据$pnArr = array('0','30','60','90','120','150','180','210','240','270','300','330','360'); $rand = rand(0,5);//百度头像图片获取api$urlArr = array("http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%B5%B7%E8%BE%B9&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%B5%B7%E8%BE%B9&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=3c&1476431870063=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E5%8D%8A%E8%BA%AB&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E5%8D%8A%E8%BA%AB&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=1e&1476431965788=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E8%90%9D%E8%8E%89&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E8%90%9D%E8%8E%89&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=3c&1476432025419=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E7%94%B7%E7%94%9F&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1+%E7%94%B7%E7%94%9F&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=5a&1476432073843=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E7%BB%8F%E5%85%B8%E5%8A%A8%E4%BD%9C+%E5%98%9F%E5%98%B4&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E7%BB%8F%E5%85%B8%E5%8A%A8%E4%BD%9C+%E5%98%9F%E5%98%B4&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=3c&1476432128601=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E5%AD%A4%E7%8B%AC&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E5%AD%A4%E7%8B%AC&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=1e&1476432211175=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+90%E5%90%8E&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+90%E5%90%8E&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=1e&1476432252392=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%A3%AE%E7%B3%BB&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%A3%AE%E7%B3%BB&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=1e&1476432318321=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E5%AD%97%E6%AF%8D&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E5%AD%97%E6%AF%8D&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=5a&1476432384197=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E5%8D%A1%E9%80%9A%E5%8A%A8%E6%BC%AB+%E7%BE%8E%E5%B0%91%E5%A5%B3%E6%88%98%E5%A3%AB&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E5%8D%A1%E9%80%9A%E5%8A%A8%E6%BC%AB+%E7%BE%8E%E5%B0%91%E5%A5%B3%E6%88%98%E5%A3%AB&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=78&1476432429562=","http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%80%A7%E6%84%9F&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=%E5%A4%B4%E5%83%8F+%E4%B8%8D%E5%90%8C%E9%A3%8E%E6%A0%BC+%E6%80%A7%E6%84%9F&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=". $pnArr[$rand] ."&rn=30&gsm=3c&1476432470204=");$index = array_rand($urlArr,1);$imgJsonData = file_get_contents($urlArr[$index]);//随机采样,让每次获取的图片尽量不是相同的,可以增加获取图片api去减少获取重复的图片的几率$imgJsonData = json_decode($imgJsonData,true);foreach ($imgJsonData['data'] as $key => $dataArr) {if ($dataArr['thumbURL']) {putImgToLocal($dataArr['thumbURL']);}}
}function putImgToLocal($url) {//下载本地if (!is_dir('./userSysAvatorUrl')) {mkdir('./userSysAvatorUrl', 0777, true);}$hdrs = array('http' =>array('header' => "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n" ."Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n" ."Connection: keep-alive\r\n" ."Host: img0.imgtn.bdimg.com\r\n" ."Referer: http://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gbk&word=%CD%B7%CF%F1&fr=ala&oriquery=%E5%A4%B4%E5%83%8F&ala=1&alatpl=portait&pos=0\r\n" ."User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0\r\n" ."X-Requested-With: XMLHttpRequest",),);$context = stream_context_create($hdrs);list($msec, $sec) = explode(' ', microtime());$file_name = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);$shullf = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');$rand_key = array_rand($shullf,3);$file_name = $shullf[$rand_key[0]].$shullf[$rand_key[1]].$shullf[$rand_key[2]].'_'.$file_name. '.jpg';$imgBin = file_get_contents($url, 0, $context);file_put_contents('./userSysAvatorUrl/'.$file_name, $imgBin);
}

这篇关于php脚本爬取头像图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/518574

相关文章

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用