天天看点

采集

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

一:普通采集

①方法:

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:,如需转载请自行联系原作者