跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

PHP CURL采集百度搜寻结果图片不显示问题的解决方法

1.根据关键字采集百度搜寻结果

根据关键字采集百度搜寻结果,可以使用curl实现,代码如下:输出后发现有部分图片不能显示

2.采集后的图片不显示原因分析

直接在百度中搜寻,页面是可以显示图片的。使用firebug查看图片路径,发现采集的图片域名与在百度搜寻的图片域名不同。

采集返回的图片域名 t11.baidu.com

正常搜寻的图片域名 ss1.baidu.com

查看采集与正常搜寻的html,发现有个域名转换的js是不一样的采集var list = {"graph.baidu.com": "http://graph.baidu.com","t1.baidu.com":"http://t1.baidu.com","t2.baidu.com":"http://t2.baidu.com","t3.baidu.com":"http://t3.baidu.com","t10.baidu.com":"http://t10.baidu.com","t11.baidu.com":"http://t11.baidu.com","t12.baidu.com":"http://t12.baidu.com","i7.baidu.com":"http://i7.baidu.com","i8.baidu.com":"http://i8.baidu.com","i9.baidu.com":"http://i9.baidu.com",};正常搜寻var list = {"graph.baidu.com": "https://sp0.baidu.com/-aYHfD0a2gU2pMbgoY3K","t1.baidu.com":"https://ss0.baidu.com/6ON1bjeh1BF3odCf","t2.baidu.com":"https://ss1.baidu.com/6OZ1bjeh1BF3odCf","t3.baidu.com":"https://ss2.baidu.com/6OV1bjeh1BF3odCf","t10.baidu.com":"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq","t11.baidu.com":"https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq","t12.baidu.com":"https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq","i7.baidu.com":"https://ss0.baidu.com/73F1bjeh1BF3odCf","i8.baidu.com":"https://ss0.baidu.com/73x1bjeh1BF3odCf","i9.baidu.com":"https://ss0.baidu.com/73t1bjeh1BF3odCf",};因此可以断定是,百度根据来源地址、IP、header等参数,判断如果是采集的,则返回不同的js。

3.采集后图片不显示的解决方法

把采集到的html,根据定义的域名做一次批量转换即可。

$v){$str = str_replace($k, $v, $str);}return $str;}$wd = '仙剑奇侠传';$url = 'http://www.baidu.com/s?wd='.urlencode($wd);$data = array();$header = array();$response = doCurl($url, $data, $header, 5);echo cdomain($response); // 调用域名转换?>增加域名转换后,所有的图片都可以正常显示。

以上所述是小编给大家介绍的PHP CURL采集百度搜寻结果图片不显示问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:PHP多线程批量采集下载美女图片的实现代码(续) PHP批量采集下载图片的实现代码php curl简单采集图片生成base64编码(并附curl函数参数说明) php采集内容中带有图片地址的远程图片并保存的方法PHP远程采集图片详细教程PHP采集类Snoopy抓取图片实例phpphp图片采集后按原路径保存图片示例php采集文章中的图片获取替换到本地(实现代码) PHP 文章中的远程图片采集到本地的代码PHP下载采集图片到本地的方法详解【可忽略ssl认证】

相关文章