Maison > php教程 > php手册 > le corps du texte

PHP获取百度百科真实链接

WBOY
Libérer: 2016-06-06 20:08:09
original
1118 Les gens l'ont consulté

百度百科是百度公司推出的一部内容开放、自由的网络百科全书,其测试版于2006年4月20日上线,正式版在2008年4月21日发布。百度百科旨在创造一个涵盖各领域知识的中文信息收集平台。——摘自互动百科 今天本来想写个php脚本通过键入中文来获取指定词条的内容

百度百科是百度公司推出的一部内容开放、自由的网络百科全书,其测试版于2006年4月20日上线,正式版在2008年4月21日发布。百度百科旨在创造一个涵盖各领域知识的中文信息收集平台。——摘自互动百科

今天本来想写个php脚本通过键入中文来获取指定词条的内容,却发现实现起来并不太简单。

百度百科词条的URL都是为 http://baike.baidu.com/view/数字.htm ,URL跟词条内容并无直接联系;而通过百度搜索获取到的都是 http://www.baidu.com/link?url=iigPGJqjJ4zBBpC8yDF8xDhiqDSn1JZjFWsHhEoSNd85PkV8Xil-wx2n0K 之类的URL,显然是被加密过的,百度的防抓取工作还做的挺充分。

上网找了下资料,发现可以对百度百科 searchword.php 的这个搜索程序入手。对 searchword.php 输入要搜索的字符(词条标题),而指定的词条存在时,它就会自动跳转到词条的真实地址。

<?php function geturl($string){
	$string = iconv('utf-8', 'gbk', $string); //将字符转换成GBK编码,若文件为GBK编码可去掉本行
	$encode = urlencode($string); //对字符进行URL编码
	$url = 'http://baike.baidu.com/list-php/dispose/searchword.php?word=' .$encode. '&pic=1';
	$get_contents = file_get_contents($url); //获取跳转页内容
	$get_contents = iconv('gbk', 'utf-8', $get_contents); //将获取的网页转换成UTF-8编码,若文件为GBK编码可去掉本行
	preg_match("/URL=(\S+)'>/s", $get_contents, $out); //获取跳转后URL
	$real_link = 'http://baike.baidu.com' .$out[1];
	return $real_link; //输出真实地址
}
echo geturl('互动百科'); //输出 http://baike.baidu.com/view/1466380.htm
?>
Copier après la connexion

运行上面的代码,脚本就会自动获取到词条的真实地址,即可接着进行抓取词条内容或其他的操作了。

如果觉得本文有什么不足的,请不吝赐教。如果各位有比这更方便的方法,也欢迎分享!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal