喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

通过php获取百度百科词条的真实链接的方法

作者:wis
[i=s] 本帖最后由 wis 于 2013-2-12 20:56 编辑 今天本来想写个php脚本通过键入中文来获取指定词条的内容,却发现实现起来并不太简单。#36m 百度百科词条的URL都是为 http://baike.baidu.com/view/数字.htm ,URL跟词条内容并无直接联系;而通过百度搜索获取到的都是 http://www.baidu.com/link?url=iigPGJqjJ4zBBpC8yDF8xDhiqDSn1JZjFWsHhEoSNd85PkV8Xil-wx2n0K 之类的URL,显然是被加密过的,百度的防抓取工作还做的挺充分。 上网找了下资料,发现可以对百度百科 searchword.php 的这个搜索程序入手。对 searchword.php 输入要搜索的字符(词条标题),而指定的词条存在时,它就会自动跳转到词条的真实地址。 [mw_shl_code=php,true]<?php /* ** 以下代码适合脚本在UTF-8编码下执行,若在其它编码下执行请依照注释作出适当修改 */ 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 ?>[/mw_shl_code] 运行上面的代码,脚本就会自动获取到词条的真实地址,即可接着进行抓取词条内容或其他的操作了。 同时也欢迎到我的博客http://wislab.net/参观指导噢~~37!

回复

简单粗暴易懂

作者:wis
查看回复

简单粗暴易懂

作者:0o团子o0
简单粗暴易懂
查看回复

楼上也是眼睛

作者:星守袋鼠
查看回复

好牛逼的样子- - 戳开看看-0-~~

作者:Mr丶Gravity
好牛逼的样子- - 戳开看看-0-~~
查看回复

LZ 博客貌似访问不了?

作者:至尊麻辣螃海
LZ 博客貌似访问不了?
查看回复

风音洛洛

作者:wis
风音洛洛 发表于 2013-2-15 16:50 记得有人问过类似的要在伪春菜上加这个功能的问题来的
我就是看到那个帖子才着手研究介个问题的,嘻嘻
查看回复

记得有人问过类似的要在伪春菜上加这个功能的

作者:风音洛洛
记得有人问过类似的要在伪春菜上加这个功能的问题来的
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU