导航:首页 > 编程语言 > php采集页面数据

php采集页面数据

发布时间:2023-06-10 04:11:00

php怎样抓取网页代码中动态(Ajax)显示的数据

你是想抓别人网页上ajax动态载入的数据吧? 1、要找到它的ajax载入的URL地址 2、利用PHP的file_get_contents($url)函数读取那个url地址。 3、对抓取到的内容进行分析或正则过滤。

㈡ PHP抓取网页指定内容

<?php
/*
* 如下: 方法有点笨
* 抓取网页内容用 PHP 的正则
* 用JS每隔5分钟刷新当前页面---即重新获取网页内容
*
* 注: $mode中--<title></title>-更改为所需内容(如 $mode = "#<a(.*)</a>#";>获取所有链接)
*
* window.location.href="http://localhost//refesh.php";中的http://localhost//refesh.php
* 更改为自己的URL----作用:即刷新当前页面
*
* setInterval("ref()",300000);是每隔300000毫秒(即 5 * 60 *1000 毫秒即5分钟)执行一次函数 ref()
*
* print_r($arr);输出获得的所有内容 $arr是一个数组 可根据所需输出一部分(如 echo $arr[1][0];)
* 若要获得所有内容 可去掉
* $mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
再加上 echo $content;
*/
$url = "http://www..com"; //目标站
$fp = @fopen($url, "r") or die("超时");

$content=file_get_contents($url);
$mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
//print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
?>
<script language="javaScript" type="text/javascript">
<--
function ref(){
window.location.href="http://localhost//refesh.php";
}
setInterval("ref()",300000);
//-->
</script>

㈢ php curl 大量数据采集

这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。

㈣ php抓取页面内容

<?php
$rs=file_get_contents('http://www.boc.cn/sourcedb/whpj/enindex.html');
preg_match('/<tablewidth="600"border="0"cellpadding="5"cellspacing="1"bgcolor="#EAEAEA">(.*?)</table>/sS',$rs,$match);
//print_r($match);
$rs=str_replace(array('</tr>','</td>','<tralign="center">','<tdbgcolor="#FFFFFF">'),array('|',';'),$match[1]);
//www.hi-docs.com/php/str_replace.html
$data=array();
$rs=explode('|',$rs);
foreach($rsas$key=>$item){
if($key>0){
$arr=explode(';',$item);
($a=@trim($arr[0]))&&($b=@trim($arr[5]))&&$data[]=array($a,$b);
}
}
print_r($data);
?>

㈤ phpstudy怎么抓取网页数据

什么网页数据?

是打开 本地网页还是打开网上网页

如果是本地网页的话 在浏览器上输入127.0.0.1或者localhost进行访问


如果是外网我理解的是你要获取外网的一个网页,可以用代码或者程序来实现

(一般称为采集程序,或者小偷程序)

//个人认为curl好一点,因为curl可以模拟浏览器,有的网站会过滤机器人

//1.php代码
//把网页读入一个字符串
$contone=file_get_contents('url');
print_r($contone);
//curl采集
#初始化curl(true/false)
$ch=curl_init();
#请求url地址
$params[CURLOPT_URL]='网址';
#是否返回响应头信息
$params[CURLOPT_HEADER]=true;
#是否将结果返回
$params[CURLOPT_RETURNTRANSFER]=true;
#是否重定向
$params[CURLOPT_FOLLOWLOCATION]=true;
#伪造浏览器
$params[CURLOPT_USERAGENT]='Mozilla/5.0(WindowsNT5.1;rv:9.0.1)Gecko/20100101Firefox/9.0.1';
curl_setopt_array($ch,$params);
$content=curl_exec($ch);
//输出网页内容
print_r($content);

//下面是整个curl采集类
classCurl{
#采集的地址
public$url;
#匹配的正则
public$preg;
#模拟登录需要的用户名
public$username;
#模拟登录需要的密码;
public$pwd;
#cookie存储的路径
private$cookie_path;
#采集数据的字符集
public$charset;

/**
*构造方法,初始化采集基本信息
*@param$url采集的url
*@param$preg匹配的正则
*@paramstring$username用户名
*@paramstring$pwd密码
*@paramstring$charset字符集
*/
publicfunction__construct($info){
extract($info);
$this->url=$url;
$this->preg=$preg;
if(isset($charset)){
header("content-type:text/html;charset=".$this->charset);
}else{
header("content-type:text/html;charset=utf-8");
}
if(isset($username)){
$this->username=$username;
}
if(isset($pwd)){
$this->pwd=$pwd;
}
}
/*
*采集数据,非表单提交方式,直接采集的
*/
publicfunctionget_info(){
#初始化curl
$ch=curl_init();
#请求url地址
$params[CURLOPT_URL]=$this->url;
#是否返回响应头信息
$params[CURLOPT_HEADER]=true;
#是否将结果返回
$params[CURLOPT_RETURNTRANSFER]=true;
#是否重定向
$params[CURLOPT_FOLLOWLOCATION]=true;
#伪造浏览器
$params[CURLOPT_USERAGENT]='Mozilla/5.0(WindowsNT5.1;rv:9.0.1)Gecko/20100101Firefox/9.0.1';
//判断是否有cookie,有的话直接使用
//if(isset($_COOKIE['cookie_jar'])&&($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){
//$params[CURLOPT_COOKIEFILE]=$_COOKIE['cookie_jar'];//这里判断cookie
//}else{
//$cookie_jar=tempnam($this->cookie_path,'cookie');//产生一个cookie文件
//$params[CURLOPT_COOKIEJAR]=$cookie_jar;//写入cookie信息
//setcookie('cookie_jar',$cookie_jar);//保存cookie路径
//}
#开始发送请求,传入curl参数
curl_setopt_array($ch,$params);
$content=curl_exec($ch);
preg_match_all($this->preg,$content,$arr);
return$arr;
}

/**
*采集远程图片
*@param$img图片路径是一个数组
*@param$save_path图片保存在你本地的路径
*@returnbool
*/
publicfunctionget_img($img,$save_path){
for($i=0;$i<count($img);$i++){
$res=@file_get_contents($img[$i]);
$img_type=substr($img[$i],strrpos($img[$i],"."));
$path=$save_path.time().rand(1,9999999).mt_rand().$img_type;
$img[$i]=$path;
file_put_contents($path,$res);
}
return$img;
}

//登录后采集
publicfunctionregister_info(){
//采集的信息需要先登录的就要先模拟登录
//设置cookie保存路径
$ch=curl_init();

//组装用户名和密码
$info['username']=$this->username;
$info['password']=$this->pwd;
//模拟表单提交
$params[CURLOPT_URL]=$this->url;//请求url地址
$params[CURLOPT_HEADER]=true;//是否返回响应头信息
$params[CURLOPT_RETURNTRANSFER]=true;//是否将结果返回
$params[CURLOPT_FOLLOWLOCATION]=true;//是否重定向
$params[CURLOPT_USERAGENT]='Mozilla/5.0(WindowsNT5.1;rv:9.0.1)Gecko/20100101Firefox/9.0.1';
$postfields='';
//将表单要提交的数据编程URL拼接方式
foreach($infoas$key=>$value){
$postfields.=urlencode($key).'='.urlencode($value).'&';
}
$params[CURLOPT_POST]=true;
$params[CURLOPT_POSTFIELDS]=$postfields;
//判断是否有cookie,有的话直接使用
if(isset($_COOKIE['cookie_jar'])&&($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){
$params[CURLOPT_COOKIEFILE]=$_COOKIE['cookie_jar'];//这里判断cookie
}else{
$cookie_jar=tempnam($this->cookie_path,'cookie');//产生一个cookie文件
$params[CURLOPT_COOKIEJAR]=$cookie_jar;//写入cookie信息
setcookie('cookie_jar',$cookie_jar);//保存cookie路径
}
curl_setopt_array($ch,$params);//传入curl参数
$content=curl_exec($ch);//执行
return$content;
}
}

㈥ PHP怎样抓取网页代码中动态显示的数据

你是想抓别人网页上ajax动态载入的数据吧?

1、要找到它的ajax载入的URL地址

2、利用PHP的file_get_contents($url)函数读取那个url地址。

3、对抓取到的内容进行分析或正则过滤。

㈦ 用PHP获取网页部分数据

如果你要

之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的

标签中的内容,可以用preg_match_all //提取所有代码 $pattern = '/
(.+?)
/is'; preg_match($pattern, $string, $match); //$match[0] 即为

之间的所有源码 echo $match[0]; //然后再提取

之间的内容 $pattern = '/(.+?)li>/is'; preg_match_all($pattern, $match[0], $results); $new_arr=array_unique($results[0]); foreach($new_arr as $kkk){ echo $kkk; }

㈧ php中想要抓取网页中某一段的数据的代码

<?php
$url='abc.com/';
$data=get_file($url);

$pattern='你的内容正则表达式';
perg_match($pattern,$data,$match);

print_r($match);

function get_file($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
return $data;
}
?>

阅读全文

与php采集页面数据相关的资料

热点内容
路由器如何控制某个app 浏览:41
C51编译器在标准C的基础上 浏览:260
银行卡掉了可以办车贷解压吗 浏览:317
没解压可以贷款吗 浏览:517
最小pdf阅读器 浏览:808
游戏被加密了怎样用电脑打开 浏览:300
蓝灯如何手动选择服务器 浏览:85
服务器设置在中国意味什么 浏览:571
单片机不能进行选择控制 浏览:694
咕咚手表如何绑定手机app 浏览:530
命令虚拟语气 浏览:405
戴尔系统命令 浏览:583
怎样压缩视频文件大小 浏览:686
51单片机信号发生器 浏览:56
米拍摄影哪个app好 浏览:88
天津致远曙光服务器云服务器 浏览:117
光子程序员怎么获得 浏览:535
中医诊断学第九版pdf 浏览:498
python集成包 浏览:305
如何用电脑解压缩文件 浏览:448