采集

--------------------------------------------采集---------------------------------------------

一:普通采集

 

方法

file_get_contents("一参");//获取页面全部内容;

//一参:参数可为'路径'或者'静态页面的名'

 

preg_match_all(一参,二参,三参);//通过正则匹配获取的内容(匹配全部);

//一参:正则;    二参:内容;     三参:变量名

 

preg_match(一参,二参,三参);//通过正则匹配获取的内容(匹配一次);

//一参:正则;    二参:内容;     三参:变量名

 

strip_tags(一参);//去除HTML,XMLPHP中的各种标签

//一参:要去除标签的变量名

 

,开启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(一参);//获取页面全部内容

//一参:要采集页面的路径

 

preg_match_all(一参,二参,三参);//通过正则匹配获取的内容(匹配全部);

//一参:正则;   二参:内容;  三参:变量名

 

foreach(){}//做出相应的循环

 

$snoopy->results//Snoopy采集完成后存储在其中

 

范例

require_once("Snoopy.class.php");

$snoopy=new Snoopy();

$snoopy->fetch("采集的路径");

$path='匹配正则';

preg_match_all($path,$snoopy->results,$qq);

foreach($qq[0] as $k=>$v){

//获取详细内容

}

 

三: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');

 

 

 

 


你可能感兴趣的:(标签)