关键字采集文章(1.采集百度搜寻结果显示2.采集后的图片不显示)
优采云 发布时间: 2022-01-10 08:14关键字采集文章(1.采集百度搜寻结果显示2.采集后的图片不显示)
1.基于关键词采集百度搜索结果
根据关键字采集百度搜索结果,可以使用curl实现,代码如下:
输出后发现有些图片无法显示
2.采集后的图片不显示原因分析
直接在百度搜索,页面可以显示图片。使用firebug查看图片路径,发现采集的图片域名和百度搜索的图片域名不一样。
采集返回的图片域名
普通搜索图片域
查看采集和正常搜索html,发现有一个域名转换js不一样
采集
普通搜索
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); // 调用域名转换 ?>
添加域名转换后,所有图片都可以正常显示了。