利用php收罗搜索功效简朴应用1——收罗百度某要害词搜索功效的网址,搜索功效网址都在<span>……</span>标签中,很容易收罗到。 以下就上代码:
<?php /** * 收罗某百度某要害词搜索功效的网址 by enenba * 2012-6-6 * * @param str $keyword 要害词 * @return array $result 搜索功效网址数组 */ function baidu_keyword_fpage($keyword) { // 构成搜索url $url = 'http://www.baidu.com/s?word=' . $keyword; $html = file_get_contents($url); $search = '/<span>(.*?)<\/span>/i'; preg_match_all($search, $html, $r); return $r; } if(isset($_GET[q])) { $url = $_GET[q]; $urlarray = baidu_keyword_fpage($url); } ?> <html> <head> <title>查询百度要害词功效网址</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body> <form method="get" action=""> 请输入要害词:<br /> <input type="text" value="<?php echo $url; ?>"><input type="submit" value="查 询"> </form> <br /> <?php echo '<pre>'; print_r($urlarray[1]); echo '</pre>'; ?> </body> </html>收罗功效:
比拟一下:
恢常的简朴。
PS:假如想要收罗第二页以上的内容
请在构成搜索url参数后加上&pn=10*N,pn的值为10的整数倍, 如:
第二页为
$url = 'http://www.baidu.com/s?word=' . $keyword . '&pn=10';第三页为
$url = 'http://www.baidu.com/s?word=' . $keyword . '&pn=20';………………
可以用轮回办理,详细代码就不上了,上一个测试:
猛击这里在线测试
百度已经更新布局,以上内容大概失效,新法则待续...
no end....
上一篇: 编程语言中十六进制的正则匹配 | 下一篇:利用curl获取页面的meta中keywords和description» 标签:分享到: 更多
相关日志:
利用curl获取页面所有链接
将HTML表格的每行每列转为数组,PHP收罗表格数据
PHP下载CSS文件中的图片
利用php正则获取网页的titile部门
正则表达式界说
curl模块模仿登录后收罗页面【详解】
从《网页降噪助你晋升搜索引擎表示》来做php正文提取算法
PHP获取页面的JS和CSS的总数和文件
如何用php正则去掉获得img标签中的 border属性
评论:
yaya 2012-09-20 08:27蛮喜欢这个站的
itkid 2012-09-17 15:50
唔 这个好像不大好使,因为span内包括的网址大概不完整,并且带了日期
enenba 2012-09-17 18:03
唔 我看了下,百度更新了,标签已经变了。
看来,又要修改法则了。