使用php curl库可以抓取网页,这方面的文章,之前介绍了不少,大家参考下:
只需要运行一个脚本,然后分析所抓取的网页,然后就可以以程序的方式获取想要的数据。
 
无论从一个链接上取部分数据,或取一个xml文件并把其导入数据库,那怕就是简单的获取网页内容,curl 是一个功能强大的php库。
php中的curl函数库(client url library function)
 
例1: 基本例子
 
例2: post数据
sendsms.php,其可以接受两个表单域,一个是电话号码,一个是短信内容。
post数据
 
例3:使用代理服务器
使用代理服务器
 
例4: 模拟登录
curl 模拟登录 discuz 程序,适合dz7.0,将username改成你的用户名,userpass改成你的密码就可以了.
curl 模拟登录 discuz 程序
 
<?php
!extension_loaded('curl') && die('the curl extension is not loaded.');
$discuz_url = 'http://www.lxvoip.com';//论坛地址   
$login_url = $discuz_url .'/logging.php?action=login';//登录页地址   
$get_url = $discuz_url .'/my.php?item=threads'; //我的帖子  
$post_fields = array();   
//以下两项不需要修改   
$post_fields['loginfield'] = 'username';   
$post_fields['loginsubmit'] = 'true';   
//用户名和密码,必须填写   
$post_fields['username'] = 'lxvoip';   
$post_fields['password'] = '88888888';   
//安全提问   
$post_fields['questionid'] = 0;   
$post_fields['answer'] = '';   
//@todo验证码   
$post_fields['seccodeverify'] = '';  
//获取表单formhash   
$ch = curl_init($login_url);   
curl_setopt($ch, curlopt_header, 0);   
curl_setopt($ch, curlopt_returntransfer, 1);   
$contents = curl_exec($ch);   
curl_close($ch);   
preg_match('/<inputs*type="hidden"s*name="formhash"s*value="(.*?)"s*/>/i', $contents, $matches);   
if(!empty($matches)) {   
    $formhash = $matches[1];   
} else {   
    die('not found the forumhash.');   
}  
//post数据,获取cookie   
$cookie_file = dirname(__file__) . '/cookie.txt';   
//$cookie_file = tempnam('/tmp');   
$ch = curl_init($login_url);   
curl_setopt($ch, curlopt_header, 0);   
curl_setopt($ch, curlopt_returntransfer, 1);   
curl_setopt($ch, curlopt_post, 1);   
curl_setopt($ch, curlopt_postfields, $post_fields);   
curl_setopt($ch, curlopt_cookiejar, $cookie_file);   
curl_exec($ch);   
curl_close($ch);  
//带着上面得到的cookie获取需要登录后才能查看的页面内容   
$ch = curl_init($get_url);   
curl_setopt($ch, curlopt_header, 0);   
curl_setopt($ch, curlopt_returntransfer, 0);   
curl_setopt($ch, curlopt_cookiefile, $cookie_file);   
$contents = curl_exec($ch);   
curl_close($ch);  
var_dump($contents);