php数据抓取项目描述 php获取数据

php怎么抓取其它网站数据

可以用以下4个方法来抓取网站 的数据:

我们提供的服务有:网站设计制作、网站设计、微信公众号开发、网站优化、网站认证、黄石ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的黄石网站制作公司

1. 用 file_get_contents 以 get 方式获取内容:

?

$url = '';

$html = file_get_contents($url);

echo $html;

2. 用fopen打开url,以get方式获取内容

?

$url = '';

$fp = fopen($url, 'r');

stream_get_meta_data($fp);

$result = '';

while(!feof($fp))

{

$result .= fgets($fp, 1024);

}

echo "url body: $result";

fclose($fp);

3. 用file_get_contents函数,以post方式获取url

?

$data = array(

'foo'='bar',

'baz'='boom',

'site'='',

'name'='nowa magic');

$data = http_build_query($data);

//$postdata = http_build_query($data);

$options = array(

'http' = array(

'method' = 'POST',

'header' = 'Content-type:application/x-www-form-urlencoded',

'content' = $data

//'timeout' = 60 * 60 // 超时时间(单位:s)

)

);

$url = "";

$context = stream_context_create($options);

$result = file_get_contents($url, false, $context);

echo $result;

4、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

$url = '';

$ch = curl_init();

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

echo $file_contents;

php采集大数据的方案

1、建议你读写数据和下载图片分开,各用不同的进程完成。

比如说,取数据用get-data.php,下载图片用get-image.php。

2、多进程的话,php可以简单的用pcntl_fork()。这样可以并发多个子进程。

但是我不建议你用fork,我建议你安装一个gearman worker。这样你要并发几个,就启几个worker,写代码简单,根本不用在代码里考虑thread啊,process等等。

3、综上,解决方案这样:

(1)安装gearman worker。

(2)写一个get-data.php,在crontab里设置它每5分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker的队列里;

然后再写一个处理数据的脚本作为worker,例如叫process-data.php,这个脚本常驻内存。它作为worker从geraman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要10个并发,那就启动10个process-data.php好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker的另一个队列里。

(3)再写一个download-data.php,作为下载图片的worker,同样,你启动10个20个并发随便你。这个进程也常驻内存运行,从gearman worker的图片数据队列里取数据出来,下载图片

4、常驻进程的话,就是在代码里写个while(true)死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环10万次退出一下。然后在crontab里设置,每分钟检查一下进程有没有启动,比如说这样启动3个process-data worker进程:

* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php /dev/null 21'

不知道你明白了没有

php项目描述怎么写

本项目需要php+mysql来实现。

首先需要分析数据库:

需要建立用户表(user)

表中字段:编号(id int primary key auto_increment),昵称(nickname varchar(255)),性别(sex int(1) 男为1,女为0),邮箱(email varchar(255)),注册时间(reg_time varchar(255) 时间戳)

还需要建立留言表(leaveword)

表中字段:编号(id int primary key auto_increment),留言用户编号(user_id int),留言内容(content text),留言时间(leaveword_time varchar(255))

建完表并插入一些测试数据后,就开始设计页面了。

当用户登录后,需要把用户的id存入session中$_SESSION['user_id'],以便用来验证用户是否登录,是否有权限发表留言。

用户进入到留言页面中以后,需要分页展示其他(包括自己)的留言。这是本人写的分页函数给你作为参考:

function getPageNum($table,$pagesize=10,$where="1=1"){ //这个函数用来获得总记录数

global $db;

$html="";

$sql="select * from ".$table." where ".$where;

$re=$db-sql_query($sql);

$num=$db-sql_numrows($re);

$pageNum=ceil($num/$pagesize);

return $pageNum;

}

function paging($table,$pagesize=10,$nowpage=1,$where="1=1",$url=""){ //这个函数用来获得分页字符串

global $db;

$html="";

$sql="select * from ".$table." where ".$where;

$re=$db-sql_query($sql);

$num=$db-sql_numrows($re);

$pageNum=ceil($num/$pagesize);

if($nowpage-2=2){

$start=1;

}else if($nowpage=$pageNum-2){

$start=$pageNum-4;

}else{

$start=$nowpage-2;

}

$end=($start+4=$pageNum)?$pageNum:$start+4;

$html.="a href='?page=1'首页/a";

for($i=$start;$i=$end;$i++){

if($url==""){

$html.="a href='?page=".$i."'".$i."/a";

}else{

$html.="a href='?page=".$i."".$url."'".$i."/a";

}

}

$html.="a href='?page=".$pageNum."'尾页/a";

return $html;

}

当用户提交留言时,应该就不用多说了。当用户点击提交(submit)后,以$_POST或以$_GET来接提交的值,然后写个插入语句

insert into leaveword values();这个不用我多说,你应该会吧。

说实在的留言确实没多少东西,惟一的难点就是,如何把用户的留言以分页的形式显示。

再难一点,就是在提交留言时,用ajax来做,达到页面无刷新的效果。

这是本人的一点心得,希望可以对你写项目描述有帮助。

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

PHP Simple HTML DOM或者phpQuery可以直接取得某些div中的内容,里面有几个例子专门针对于网页抓取,调整好抓取频次,舍去已经存在的数据,你可以参考下

;id=57class=2


本文标题:php数据抓取项目描述 php获取数据
当前地址:http://ybzwz.com/article/dosdchj.html