千家信息网

怎么解决php采集文章图片不显示

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容介绍了"怎么解决php采集文章图片不显示"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php
千家信息网最后更新 2025年02月05日怎么解决php采集文章图片不显示

本篇内容介绍了"怎么解决php采集文章图片不显示"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

php采集文章图片不显示的解决办法:1、根据关键字采集百度搜寻结果;2、把采集到的html,根据定义的域名做一次批量转换即可。

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php采集文章图片不显示怎么办?

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

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

根据关键字采集百度搜寻结果,可以使用curl实现,代码如下:


function doCurl($url, $data=array(), $header=array(), $timeout=30){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$response = curl_exec($ch);
if($error=curl_error($ch)){
die($error);
}
curl_close($ch);
return $response;
}
$wd = '仙剑奇侠传';
$url = 'http://www.baidu.com/s?wd='.urlencode($wd);
$data = array();
$header = array();
$response = doCurl($url, $data, $header, 5);
echo $response;
?>

输出后发现有部分图片不能显示

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/6ON1bjeh2BF3odCf",
"t2.baidu.com":"https://ss1.baidu.com/6OZ1bjeh2BF3odCf",
"t3.baidu.com":"https://ss2.baidu.com/6OV1bjeh2BF3odCf",
"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/73F1bjeh2BF3odCf",
"i8.baidu.com":"https://ss0.baidu.com/73x1bjeh2BF3odCf",
"i9.baidu.com":"https://ss0.baidu.com/73t1bjeh2BF3odCf",
};

因此可以断定是,百度根据来源地址、IP、header等参数,判断如果是采集的,则返回不同的js。

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

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


function doCurl($url, $data=array(), $header=array(), $timeout=30){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$response = curl_exec($ch);
if($error=curl_error($ch)){
die($error);
}
curl_close($ch);
return $response;
}
// 域名转换
function cdomain($str){
$baidu_domain = '{
"http://graph.baidu.com": "https://sp0.baidu.com/-aYHfD0a2gU2pMbgoY3K",
"http://p.qiao.baidu.com":"https://sp0.baidu.com/5PoXdTebKgQFm2e88IuM_a",
"http://vse.baidu.com":"https://sp3.baidu.com/6qUDsjip0QIZ8tyhnq",
"http://hdpreload.baidu.com":"https://sp3.baidu.com/7LAWfjuc_wUI8t7jm9iCKT-xh_",
"http://lcr.open.baidu.com":"https://sp2.baidu.com/8LUYsjW91Qh4otqbppnN2DJv",
"http://kankan.baidu.com":"https://sp3.baidu.com/7bM1dzeaKgQFm2e88IuM_a",
"http://xapp.baidu.com":"https://sp2.baidu.com/yLMWfHSm2Q5IlBGlnYG",
"http://dr.dh.baidu.com":"https://sp0.baidu.com/-KZ1aD0a2gU2pMbgoY3K",
"http://xiaodu.baidu.com":"https://sp0.baidu.com/yLsHczq6KgQFm2e88IuM_a",
"http://sensearch.baidu.com":"https://sp1.baidu.com/5b11fzupBgM18t7jm9iCKT-xh_",
"http://s1.bdstatic.com":"https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K",
"http://olime.baidu.com":"https://sp0.baidu.com/8bg4cTva2gU2pMbgoY3K",
"http://app.baidu.com":"https://sp2.baidu.com/9_QWsjip0QIZ8tyhnq",
"http://i.baidu.com":"https://sp0.baidu.com/74oIbT3kAMgDnd_",
"http://c.baidu.com":"https://sp0.baidu.com/9foIbT3kAMgDnd_",
"http://sclick.baidu.com":"https://sp0.baidu.com/5bU_dTmfKgQFm2e88IuM_a",
"http://nsclick.baidu.com":"https://sp1.baidu.com/8qUJcD3n0sgCo2Kml5_Y_D3",
"http://sestat.baidu.com":"https://sp1.baidu.com/5b1ZeDe5KgQFm2e88IuM_a",
"http://eclick.baidu.com":"https://sp3.baidu.com/-0U_dTmfKgQFm2e88IuM_a",
"http://api.map.baidu.com":"https://sp2.baidu.com/9_Q4sjOpB1gCo2Kml5_Y_D3",
"http://ecma.bdimg.com":"https://ss1.bdstatic.com/-0U0bXSm1A5BphGlnYG",
"http://ecmb.bdimg.com":"https://ss0.bdstatic.com/-0U0bnSm1A5BphGlnYG",
"http://t1.baidu.com":"https://ss0.baidu.com/6ON1bjeh2BF3odCf",
"http://t2.baidu.com":"https://ss1.baidu.com/6OZ1bjeh2BF3odCf",
"http://t3.baidu.com":"https://ss2.baidu.com/6OV1bjeh2BF3odCf",
"http://t10.baidu.com":"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq",
"http://t11.baidu.com":"https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq",
"http://t12.baidu.com":"https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq",
"http://i7.baidu.com":"https://ss0.baidu.com/73F1bjeh2BF3odCf",
"http://i8.baidu.com":"https://ss0.baidu.com/73x1bjeh2BF3odCf",
"http://i9.baidu.com":"https://ss0.baidu.com/73t1bjeh2BF3odCf",
"http://b1.bdstatic.com":"https://ss0.bdstatic.com/9uN1bjq8AAUYm2zgoY3K",
"http://ss.bdimg.com":"https://ss1.bdstatic.com/5aV1bjqh_Q23odCf",
"http://opendata.baidu.com":"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv",
"http://api.open.baidu.com":"https://sp0.baidu.com/9_Q4sjW91Qh4otqbppnN2DJv",
"http://tag.baidu.com":"https://sp1.baidu.com/6LMFsjip0QIZ8tyhnq",
"http://f3.baidu.com":"https://sp2.baidu.com/-uV1bjeh2BF3odCf",
"http://s.share.baidu.com":"https://sp0.baidu.com/5foZdDe71MgCo2Kml5_Y_D3",
"http://bdimg.share.baidu.com":"https://ss1.baidu.com/9rA4cT8aBw9FktbgoI7O1ygwehsv",
"http://1.su.bdimg.com":"https://ss0.bdstatic.com/k4oZeXSm1A5BphGlnYG",
"http://2.su.bdimg.com":"https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG",
"http://3.su.bdimg.com":"https://ss2.bdstatic.com/kfoZeXSm1A5BphGlnYG",
"http://4.su.bdimg.com":"https://ss3.bdstatic.com/lPoZeXSm1A5BphGlnYG",
"http://5.su.bdimg.com":"https://ss0.bdstatic.com/l4oZeXSm1A5BphGlnYG",
"http://6.su.bdimg.com":"https://ss1.bdstatic.com/lvoZeXSm1A5BphGlnYG",
"http://7.su.bdimg.com":"https://ss2.bdstatic.com/lfoZeXSm1A5BphGlnYG",
"http://8.su.bdimg.com":"https://ss3.bdstatic.com/iPoZeXSm1A5BphGlnYG"
}';
$domain = json_decode($baidu_domain, true);
foreach($domain as $k=>$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采集文章图片不显示"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

图片 域名 文章 结果 关键 关键字 不同 仙剑 内容 奇侠 方法 更多 知识 输出 实用 学有所成 接下来 中搜 代码 办法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 工作室配置的电脑用的服务器 医疗软件开发学什么语言 滨州都有哪些软件开发公司 酷通加速服务器app下载 中山专业软件开发批发价 陕西曙光服务器续保费用 网络安全组织协调机构 优选互联网科技电话 软件开发立项申请表 手机管理云服务器的软件 服务器ip未备案是什么意思 宁夏软件开发商 网络安全风险问题产生的原因 深圳免费版进销存软件开发 狼之魂服务器 数据库管理用什么软件 如何查询数据库约束条件 电脑提示服务器设置是怎么回事 手机版cf最好玩的服务器 宝德2u服务器上架轨道安装 大专学的计算机网络技术好吗 医疗软件开发学什么语言 吉林上门软件开发商家 csgo官配服务器怎么选 违反网络安全法的犯罪行为 企业网络安全领导小组 成都龙湖软件开发是6个月转正吗 数据库安装维护 数据库取出数据命令 停车道闸数据库如何导出
0