--------------------------------------------采集---------------------------------------------
一:普通采集
①方法:
file_get_contents("一参");//获取页面全部内容;
//一参:参数可为'路径'或者'静态页面的名'
preg_match_all(一参,二参,三参);//通过正则匹配获取的内容(匹配全部);
//一参:正则; 二参:内容; 三参:变量名
preg_match(一参,二参,三参);//通过正则匹配获取的内容(匹配一次);
strip_tags(一参);//去除HTML,XML和PHP中的各种标签
//一参:要去除标签的变量名
②,开启php.ini中的配置:allow_url_fopen=On
③,范例:
$url=file_get_contents("路径");
$path='匹配正则';
preg_match_all($path,$url,$ul);
$pathg="/http:\/\/www\.yanxuening\.com\/0902\/demo\d{1}\.htm/s";
preg_match_all($pathg,implode($ul[1],""),$qq);
foreach($qq[0] as $k=>$v){
//获取详细内容
}
二:Snoopy采集
fetch(一参);//获取网页的内容
//一参:要采集页面的路径
fetchtext(一参);//只获取网页中的文字内容
fetchlinks(一参);//返回链接
submit(一参,二参);//伪登录(俗称假登录)
//一参:网页的地址;二参:数组名(登录所需要的一些值)
②步骤:
require_once(一参)/include_once(一参);//引入'Snoopy.class.php'类
$snoopy=new Snoopy();//实例化snoopy
$snoopy->fetch(一参);//获取页面全部内容
//一参:正则; 二参:内容; 三参:变量名
foreach(){}//做出相应的循环
$snoopy->results//Snoopy采集完成后存储在其中
③范例:
require_once("Snoopy.class.php");
$snoopy=new Snoopy();
$snoopy->fetch("采集的路径");
preg_match_all($path,$snoopy->results,$qq);
三:CURL采集
①函数:
curl_init()//初始化curl
curl_setopt(一参,二参,三参)//设置curl
//一参:初始化的变量名 二参:以下三个函数之一
三参:地址或不唯一
curl_exec(一参)//运行curl
//一参:初始化的变量名
curl_close(一参)//关闭curl
//一参:初始化的变量名
CURLOPT_URL//想用PHP取回URL的地址;
CURLOPT_HEADER//输出一个头,包含在输出中;
CURLOPT_RETURNTRANSFER//获取curl的字符串值
②:范例
//初始化curl
$curl=curl_init();
//设置采集的网页
curl_setopt($curl,CURLOPT_URL,'http://news.163.com/domestic/');
//设置头
curl_setopt($curl,CURLOPT_HEADER,1);
//设置以字符串的形式输出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//运行curl
$data=curl_exec($curl);
//关闭curl
curl_close($curl);
----------------------------------------------XML--------------------------------------------------
一:方法
new DOMDocument()//声明一个'XML'对象
createElement(一参)//创建节点
//一参:节点的名字
createTextNode(一参)//创建文本节点
//一参:名字;
appendChild(一参)//追加子节点
//一参:要追加的名
createAttribute(一参)//创建节点的属性
//一参:名
getElementsByTagName(一参)//找节点
//节点名
hasChildNodes()//判断该节点下是否子节点
nodeValue//获取值
load(一参)//引入xml文件
//一参:xml文件名
save(一参)//创建XML
//一参:要创建的xml文件名
②经典例句:
//获取属性
echo $student->item($k)->attributes->item(0)->nodeValue;
//找到name节点,且获取其中name的的值
$name=$v->getElementsByTagName("name");
echo $name->item(0)->nodeValue;
注意一下几点:
1,创建xml时“$dom=new DOMDocument("1.0","utf-8");”//参数必须有两个
2,读取xml时“$dom=new DOMDocument();”//参数没有
③读取XML范例
$dom=new DOMDocument();
$dom->load("brand.xml");
$brands=$dom->getElementsByTagName("brands");
foreach($brands as $key=>$val){
$brand=$val->getElementsByTagName("brand");
foreach($brand as $k=>$v){
$brand_id=$v->getElementsByTagName("brand_id");
echo $brand_id->item(0)->nodeValue
④创建XML范例
$arr=array('name'=>'zhangsan','sex'=>'男');
$dom=new DOMDocument("1.0","utf-8");
$students=$dom->createElement("students");
$dom->appendChild($students);
foreach($arr as $k=>$v){
$name=$dom->createElement($k);
$students->appendChild($name);
$value=$dom->createTextNode($v);
$name->appendChild($value);
$dom->save('2.xml');
本文转自噼里啪啦啦 51CTO博客,原文链接http://blog.51cto.com/pilipala/1670694:,如需转载请自行联系原作者