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

php采集网页数据

发布时间:2022-07-29 20:41:00

php正则表达式怎么抓取网页数据

会用正则就会抓取。
不会正则,一时半会也教不错。
不过,推荐你使用phpQuery这个框架,用jQuery的使用器来抓取数据。

㈡ php获取网页源码内容有哪些办法

可以参考以下几种方法:

方法一: file_get_contents获取

<span style="white-space:pre"></span>$url="http://www..com/";

<span style="white-space:pre"></span>$fh= file_get_contents

('http://www.hxfzzx.com/news/fzfj/');<span style="white-space:pre"></span>echo $fh;

拓展资料

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

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

你是想抓别人网页上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抓取网页指定的内容

我给你一个思路, 代码我也不会给的, 会被网络删的.

抓取网上的数据, 一般用正则去匹配. 你可以匹配开头为<div class="so_weather">的, 然后匹配结尾. 结尾尽量是这个开头div的下一个同级div, 如<div id="asda">, 这样. 然后得到的数据用strip_tags函数将html代码都去了, 得到的结果就是你想要的

㈥ 用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; }

㈦ 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采集网页部分数据的问题

这个网址的空格转换一下:
http://sale.gb168.cn/Saleagent/Customer/Shopping/StandardDetails.aspx?StandNo=GB/T%2020819.1-2007

㈨ PHP 如何获取到一个网页的内容

1.file_get_contents
PHP代码

复制代码 代码如下:

<?php
$url = "http://www.jb51.net";
$contents = file_get_contents($url);
//如果出现中文乱码使用下面代码
//$getcontent = iconv("gb2312", "utf-8",$contents);
echo $contents;
?>

2.curl
PHP代码

复制代码 代码如下:

<?php
$url = "http://www.jb51.net";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//在需要用户检测的网页里需要增加下面两行
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>

3.fopen->fread->fclose
PHP代码

复制代码 代码如下:

<?php
$handle = fopen ("http://www.jb51.net", "rb");
$contents = "";
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
echo $contents;
?>

注:
1.
使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置
allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。
2.使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分
号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩
展。

阅读全文

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

热点内容
curlphp爬虫 浏览:872
python按日期循环 浏览:108
php三个等号 浏览:758
培训班出来的程序员解决问题很差 浏览:961
程序员那么可爱25集 浏览:753
服务器地址和ip地址一样不 浏览:664
php中括号定义数组 浏览:602
php打印堆栈 浏览:516
华为adb命令行刷机 浏览:965
人像摄影pdf 浏览:761
解压文件密码怎样重新设置手机 浏览:1001
高考指南pdf 浏览:695
爬虫python数据存储 浏览:240
u盘怎么取消加密 浏览:431
567除以98的简便算法 浏览:342
pdf手机如何解压 浏览:21
python描述器 浏览:60
战地联盟3解压密码 浏览:805
s型命令 浏览:25
php年薪5年 浏览:71