可以用以下4个方法来抓取网站 的数据:
1 用 file_get_contents 以 get 方式获取内容:
$url = '>
PHP是编译的运行程序,在浏览器看到的是编译执行之后的展示页面,并不是源代码。
网站站长,公开共享免费提供网站源码整站下载的,可以拿到查看。
网站提供后台,给一定的人群,有一定的管理权限。可以解除代码。
服务器,部分网站因为某些原因,服务器是共享的,可以看到源代码。
function listfile($dir)
{
$fileArray = array();
$cFileNameArray = array();
if($handle = opendir($dir))
{
while(($file = readdir($handle)) !== false)
{
if($file !="" && $file !="")
{
if(is_dir($dir DIRECTORY_SEPARATOR $file))
{
$cFileNameArray = listfile($dir DIRECTORY_SEPARATOR $file);
$fileArray = array_merge($fileArray,$cFileNameArray);
}
else
{
$fileArray[] = $dir DIRECTORY_SEPARATOR $file;
}
}
}
fclose($handle);
}
return $fileArray;
}
//这个函数是输入物理路径,得到物理路径下所有的文件路径
$dir=dirname(realpath('1php'));
//这个是假设文件名为1php时,取得当前物理路径的。
$file_list=listfile($dir);
echo '<pre>';
print_r($file_list);
echo '</pre>';
//函数调用以及显示
取得所有文件的路径之后根据你的网页文件特点写个正则表达式判断就行了,不过这获得所有路径的做法非常占资源的,最好还是少用,最适合的还是设计网站时把所有网页文件都放到同一个文件夹下就好了
查看一个网页html源代码的方法是:打开一个网页之后,点击浏览器上的菜单查看选择下面的源文件选项即可打开一个记事本文件,其中就是这个网页所有代码也可以将鼠标放置到网页上的任何位置(只要是位于没有链接处,最好是网页中的空白区域),点击鼠标右键选择其中的查看源文件即可
一、用file_get_contents函数,以post方式获取url
<php
$url= '>
$data= array('foo'=> 'bar');
$data= >
$opts= array(
'>
'method'=> 'POST',
'header'=>"Content-type: application/x->
"Content-Length: " strlen($data) "\r\n",
'content'=> $data
)
);
$ctx= stream_context_create($opts);
$html= @file_get_contents($url,'',$ctx);
二、用file_get_contents以get方式获取内容
<php
$url='>
$html= file_get_contents($url);
echo$html;
>
三、用fopen打开url, 以get方式获取内容
<php
$fp= fopen($url,'r');
$header= stream_get_meta_data($fp);//获取报头信息
while(!feof($fp)) {
$result= fgets($fp, 1024);
}
echo"url header: {$header} <br>":
echo"url body: $result";
fclose($fp);
>
四、用fopen打开url, 以post方式获取内容
<php
$data= array('foo2'=> 'bar2','foo3'=>'bar3');
$data= >
$opts= array(
'>
'method'=> 'POST',
'header'=>"Content-type: application/x->
urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n"
"Content-Length: " strlen($data) "\r\n",
'content'=> $data
)
);
$context= stream_context_create($opts);
$html= fopen('>
$w=fread($html,1024);
echo$w;
>
五、使用curl库,使用curl库之前,可能需要查看一下phpini是否已经打开了curl扩展
<php
$ch= curl_init();
$timeout= 5;
curl_setopt ($ch, CURLOPT_URL, '>
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents= curl_exec($ch);
curl_close($ch);
echo$file_contents;
>
可以获取到用户跳转时最后一次的链接,也就是你拿到用户来源链接后,看看这里面是否包含关键词信息,如果不包含,那就没办法通过开发的方式实现。比如百度搜索,也许可以使用他们的网站统计服务来查看数据,但自己开发,可能不行。
像 MEZW搜索 这种直接跳转的话,就没问题,同样获取来源链接地址,然后从里面提取关键词即可。
以上就是关于php怎么抓取其它网站数据全部的内容,包括:php怎么抓取其它网站数据、如何查看别人网站的PHP源代码、php 如何获得一个网站下面所有网页的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)