快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

网页趴数据php,网站爬数据

php的curl怎么爬取网页内容

创建一个新cURL资源

成都创新互联公司是一家专注于网站制作、成都网站设计与策划设计,商丘网站建设哪家好?成都创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:商丘等地区。商丘做网站价格咨询:13518219792

设置URL和相应的选项

抓取URL并把它传递给浏览器

关闭cURL资源,并且释放系统资源

代码案例:

PHP抓取网页指定内容

?php

/*

* 如下: 方法有点笨

* 抓取网页内容用 PHP 的正则

* 用JS每隔5分钟刷新当前页面---即重新获取网页内容

*

* 注: $mode中--title/title-更改为所需内容(如 $mode = "#a(.*)/a#";获取所有链接)

*

* window.location.href="";中的

* 更改为自己的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 = ""; //目标站

$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="";

}

setInterval("ref()",300000);

//--

/script

如何用php 编写网络爬虫?

pcntl_fork或者swoole_process实现多进程并发。按照每个网页抓取耗时500ms,开200个进程,可以实现每秒400个页面的抓取。

curl实现页面抓取,设置cookie可以实现模拟登录

simple_html_dom 实现页面的解析和DOM处理

如果想要模拟浏览器,可以使用casperJS。用swoole扩展封装一个服务接口给PHP层调用

在这里有一套爬虫系统就是基于上述技术方案实现的,每天会抓取几千万个页面。

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

可以参考以下几种方法:

方法一: file_get_contents获取

span style="white-space:pre" /span$url="";

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

('');span style="white-space:pre" /spanecho $fh;

方法二:使用fopen获取网页源代码

span style="white-space:pre" /span$url="";

span style="white-space:pre" /span$handle = fopen ($url, "rb");

span style="white-space:pre" /span$contents = "";

span style="white-space:pre" /spanwhile (!feof($handle)) {

span style="white-space:pre"  /span$contents .= fread($handle, 8192);

span style="white-space:pre" /span}

span style="white-space:pre" /spanfclose($handle);

span style="white-space:pre" /spanecho $contents; //输出获取到得内容。

方法三:使用CURL获取网页源代码

$url="";

$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$curl = curl_init(); //创建一个新的CURL资源

curl_setopt($curl, CURLOPT_URL, $url); //设置URL和相应的选项

curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息,1显示,0不显示。//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_ENCODING, ''); //设置编码格式,为空表示支持所有格式的编码

//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。

$data = curl_exec($curl);

echo $data;

//echo curl_errno($curl); //返回0时表示程序执行成功

curl_close($curl); //关闭cURL资源,并释放系统资源

拓展资料

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

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

参考资料:PHP(超文本预处理器)-百度百科

如何用PHP做网络爬虫

其实用PHP来爬会非常方便,主要是PHP的正则表达式功能在搜集页面连接方面很方便,另外PHP的fopen、file_get_contents以及libcur的函数非常方便的下载网页内容。

具体处理方式就是建立就一个任务队列,往队列里面插入一些种子任务和可以开始爬行,爬行的过程就是循环的从队列里面提取一个URL,打开后获取连接插入队列中,进行相关的保存。队列可以使用数组实现。

当然PHP作为但线程的东西,慢慢爬还是可以,怕的就是有的URL打不开,会死在那里。

抓取网页数据怎么保存到数据库 php

给一个例子你看看吧.

if($pro_list_contents=@file_get_contents(''))

{

preg_match_all("/td width=\"50%\" valign=\"top\"(.*)td width=\"10\"img src=\"images\/spacer.gif\"/isU", $pro_list_contents, $pro_list_contents_ary);

for($i=0; $icount($pro_list_contents_ary[1]); $i++)

{

preg_match_all("/a href=\"(.*)\"img src=\"(.*)\".*span(.*)\/span/isU", $pro_list_contents_ary[1][$i], $url_img_price);

$url=addslashes($url_img_price[1][0]);

$img=str_replace(' ', '20%', trim(''.$url_img_price[2][0]));

$price=(float)str_replace('$', '', $url_img_price[3][0]);

preg_match_all("/a class=\"ml1\" href=\".*\"(.*)\/a/isU", $pro_list_contents_ary[1][$i], $proname_ary);

$proname=addslashes($proname_ary[1][0]);

include("inc/db_connections.php");

$rs=mysql_query("select * from pro where Url='$url' and CateId='{$cate_row['CateId']}'"); //是否已经采集了

if(mysql_num_rows($rs))

{

echo "跳过:{$url}br";

continue;

}

$basedir='/u_file/pro/img/'.date('H/');

$save_dir=Build_dir($basedir); //创建目录函数

$ext_name = GetFileExtName( $img ); //取得图片后辍名

$SaveName = date( 'mdHis' ) . rand( 10000, 99999 ) . '.' . $ext_name;

if( $get_file=@file_get_contents( $img ) )

{

$fp = @fopen( $save_dir . $SaveName, 'w' );

@fwrite( $fp, $get_file );

@fclose( $fp );

@chmod( $save_dir . $SaveName, 0777 );

@copy( $save_dir . $SaveName, $save_dir . 'small_'.$SaveName );

$imgpath=$basedir.'small_'.$SaveName;

}

else

{

$imgpath='';

}

if($pro_intro_contents=@file_get_contents($url))

{

preg_match_all("/\/h1(.*)\/td\/tr/isU", $pro_intro_contents, $pro_intro_contents_ary);

$p_contents=addslashes(str_replace('src="', 'src="', $pro_intro_contents_ary[1][0]));

$p_contents=SaveRemoteImg($p_contents, '/u_file/pro/intro/'.date('H/')); //把远程html代码里的图片保存到本地

}

$t=time();

mysql_query("insert into pro(CateId, ProName, PicPath_0, S_PicPath_0, Price_0, Contents, AddTime, Url) values('{$cate_row['CateId']}', '$proname', '$imgpath', '$img', '$price', '$p_contents', '$t', '$url')");

echo $url.$img.$cate."br\r\n";

}

}


当前文章:网页趴数据php,网站爬数据
当前URL:http://6mz.cn/article/dsgcgho.html

其他资讯