php网页采集功能
2012-02-22 15:52
197 查看
我要获取这里的所有列表名称和列表url地址。
phpquery有多种初始化的方法,这里我用:
下载:http://code.google.com/p/phpquery/downloads/list
<?php
//初始化phpquery对象
$file = file_get_contents(" http://lmzj26.blog.51cto.com/index.html");
$dom = phpQuery::newDocument($file);
//这样可以得到网页标题
$title = pq("head > title")->text();
//获取网页标题
$title = $dom['head > title']->text();
//开始获取列表
//可以看到样式为.con这个div
$div = pq('.con')->find('a'); //把这个div里面的所有a标签作为对象存入$div
foreach($div as $d){ //循环,这里的$d即表示的是一个a对象了
$url = pq($d)->attr('href'); //获取href属性
$t = pq($d)->text(); //获取a标签里面的文本
$al[$url] = $t; //存入数组,循环,采集,存入数据库
}
例二。guoxue.baidu.com/page/caabbead/0.html
/**
这里我们要做的是获取这里的文章作者和内容,即关关雎鸠.....
分析得出作者是在 <div class="con"> 里面的p标签里面的。而内容则是被包含
在这个div里面的第二个子div,第一与第三个div是上下页。
*/
//创建对象
$file2 = file_get_contents(" http://lmzj26.blog.51cto.com/index.html ");
$dom = phpQuery::newDocument($file2);
//获取了作者那一块信息。
$writer = pq('.con')->find('p')->text();
//echo $writer;
//$writer = getWriter($writer); //这是我写的获取作者的一个函数,很简单按:分割就得到了
$cont = pq('.con')->find('div'); //得到样式.con的div里面所有div对象
$content = array();
$content['writer'] = $writer;
$i =0;
foreach($cont as $arch){ //循环得到单个的div对象
if($i ==1){ //文章div是第二个
$content['txt'] = pq($arch)->html(); //这里就得到文章了
}
$i++;
}
//print_r($content);
?>
这样就完成了。不过采集需要注意的是编码问题。如不注意则有些生僻字则获取不到。
如上网页的编码是gb2312,而我的是utf-8则需要转码一下。
$content['txt'] = iconv('gb2312','utf-8',$content['txt'] ); //但是这样还是有很多字符丢失了。。搞了半天才明白。。这有关字符大小的关系。gb2312<gbk<gb18030
把gb2312改为gbk就好了。。
$content['txt'] = iconv('gbk','utf-8',$content['txt'] );
做采集功能,原来这么简单
本文出自 “爱好者--都市网达” 博客,请务必保留此出处http://lmzj26.blog.51cto.com/1081403/786824
phpquery有多种初始化的方法,这里我用:
下载:http://code.google.com/p/phpquery/downloads/list
<?php
//初始化phpquery对象
$file = file_get_contents(" http://lmzj26.blog.51cto.com/index.html");
$dom = phpQuery::newDocument($file);
//这样可以得到网页标题
$title = pq("head > title")->text();
//获取网页标题
$title = $dom['head > title']->text();
//开始获取列表
//可以看到样式为.con这个div
$div = pq('.con')->find('a'); //把这个div里面的所有a标签作为对象存入$div
foreach($div as $d){ //循环,这里的$d即表示的是一个a对象了
$url = pq($d)->attr('href'); //获取href属性
$t = pq($d)->text(); //获取a标签里面的文本
$al[$url] = $t; //存入数组,循环,采集,存入数据库
}
例二。guoxue.baidu.com/page/caabbead/0.html
/**
这里我们要做的是获取这里的文章作者和内容,即关关雎鸠.....
分析得出作者是在 <div class="con"> 里面的p标签里面的。而内容则是被包含
在这个div里面的第二个子div,第一与第三个div是上下页。
*/
//创建对象
$file2 = file_get_contents(" http://lmzj26.blog.51cto.com/index.html ");
$dom = phpQuery::newDocument($file2);
//获取了作者那一块信息。
$writer = pq('.con')->find('p')->text();
//echo $writer;
//$writer = getWriter($writer); //这是我写的获取作者的一个函数,很简单按:分割就得到了
$cont = pq('.con')->find('div'); //得到样式.con的div里面所有div对象
$content = array();
$content['writer'] = $writer;
$i =0;
foreach($cont as $arch){ //循环得到单个的div对象
if($i ==1){ //文章div是第二个
$content['txt'] = pq($arch)->html(); //这里就得到文章了
}
$i++;
}
//print_r($content);
?>
这样就完成了。不过采集需要注意的是编码问题。如不注意则有些生僻字则获取不到。
如上网页的编码是gb2312,而我的是utf-8则需要转码一下。
$content['txt'] = iconv('gb2312','utf-8',$content['txt'] ); //但是这样还是有很多字符丢失了。。搞了半天才明白。。这有关字符大小的关系。gb2312<gbk<gb18030
把gb2312改为gbk就好了。。
$content['txt'] = iconv('gbk','utf-8',$content['txt'] );
做采集功能,原来这么简单
本文出自 “爱好者--都市网达” 博客,请务必保留此出处http://lmzj26.blog.51cto.com/1081403/786824
相关文章推荐
- php网页采集功能
- 利用php代码实现网页版简单的计算器功能
- 使用PHP的CURL模拟POST采集开了viewstate的asp.net网页数据
- php采集文章内容列表链接-php采集网页-php爬虫视频教程3
- PHP--------微信网页开发实现微信扫码功能
- php的curl多线程采集网页的解决办法
- 【引用】PHP的cURL库功能简介:抓取网页,POST数据及其他
- 使用phpQuery轻松采集网页内容
- 使用PHP提供的CURL模块采集任意网页 已经封装一个类超级好用 请拿走
- 使用PHP做网页采集实例过程总结
- 使用PHP的CURL模拟POST采集开了viewstate的asp.net网页数据
- 采集列表页总数-php采集网页-php爬虫视频教程4
- php_采集网页_标准3步
- 工作记录:html网页采集利器:simple_html_dom,phpQuery
- PHP的cURL库功能简介 抓取网页、POST数据及其他
- 使用phpQuery轻松采集网页内容
- js+php实现实时网页聊天功能
- PHP的cURL库功能简介:抓取网页,POST数据及其他
- php 实现信息采集(网页内容抓取)程序代码
- PHP的cURL库功能简介:抓取网页,POST数据及其他