PHP批量获取百度搜索结果网址
- 发表于
- 周边
类似的实现方法很多,这里是使用PHP获取的,关于用途你懂,源码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php error_reporting(E_ERROR); set_time_limit(0); $keyword = '爱情' ; // 批量关键字 $filedir= "test.txt"; $timeout = 20; $startpage = 1; $lastpage = 4; // 抓取量 $list = ReadBaiduList($keyword,$timeout,$startpage,$lastpage); $num = count($list); $fp = fopen("$filedir",w); if($fp) { for($i=0;$i<=$num;$i++) { fwrite($fp,$list[$i]."\n"); } }else { echo '<font color=red>can not open file'; } fclose($fp); //http://www.baidu.com/s?wd=爱情&pn=40&ie=utf-8&usm=1 function ReadBaiduList($keyword,$timeout,$startpage,$lastpage) { for($i=$startpage; $i<$lastpage; $i++) { $nowpage = ($i-1)*10; $fp = @fsockopen('www.baidu.com',80,$errno,$errstr,$timeout); @fputs($fp,"GET /s?wd=".urlencode($keyword)."&pn=".$nowpage." HTTP/1.1\r\nHost:www.baidu.com\r\nConnection: Close\r\n\r\n"); while ($fp && !feof($fp)) $data .= fread($fp, 1024); @fclose($fp); preg_match_all("/<span class=\"g\">(.*)<\/span>/iU",$data,$tmp); } foreach($tmp[1] as $value) { $list = explode('/',$value); $lastlist[] = $list[0]; } $lastlist = array_unique($lastlist); return $lastlist; } ?> |
原文连接:PHP批量获取百度搜索结果网址
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。