php采集远程文章简单类

<?php
/**
* 采集类
* @author Milkcy QQ:9877633
* @copyright (C) 2012-2015 TCCMS.COM
* @lastmodify 2012-07-10 14:00
*/
class gather {

public $pagestring = '';
private $db;

function __construct() {
global $db;
$this->db = $db;
}

function geturlfile($url) {
$url = trim($url);
$content = '';
if (extension_loaded('curl')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$content = curl_exec($ch);
curl_close($ch);
} else {
$content = file_get_contents($url);
}
return trim($content);
}

function get_all_url($code) {
preg_match_all('/<a.+?href=["|\\']?([^>"\\' ]+)["|\\']?\\s*[^>]*>([^>]+)<\\/a>/is', $code, $arr);
return array('name' => $arr[2], 'url' => $arr[1]);
}

function get_sub_content($str, $start, $end) {
$start = trim($start);
$end = trim($end);
if ($start == '' || $end == '') {
return $str;
}
$str = explode($start, $str);
$str = explode($end, $str[1]);
return $str[0];
}

function vd($var) {
echo "<div style=\\"border:1px solid #ddd;background:#F7F7F7;padding:5px 10px;\\">\\r\\n";
echo "<pre style=\\"font-family:Arial,Vrinda;font-size:14px;\\">\\r\\n";
var_dump($var);
echo "\\r\\n</pre>\\r\\n";
echo "</div>";
}

}

?>

<?php
define('ROOT_PATH', str_replace('\\\\', '/', dirname(__FILE__)));
include ROOT_PATH."/gather.class.php";
set_time_limit(0);
header("Content-type: text/html; charset=gb2312");
//目标网址
$url = 'http://news.163.com/special/00013C0O/guojibjtj_03.html';
//实例化采集机器
$gather = new gather();
//获取目标网址HTML
$html = $gather->geturlfile($url);
//定义采集列表区间
$start = '<div class="bd clearfix">';
$end = '<div class="pages-1 mt25">';
//获取区间内的文章URL和TITLE
$code = $gather->get_sub_content($html, $start, $end);
$newsAry = $gather->get_all_url($code);
//打印出结果
//$gather->vd($newsAry);
$tarGetUrl = $newsAry['url'][0];
//获取目标网址HTML
$html = $gather->geturlfile($tarGetUrl);
//定义采集列表区间
$start = '<div id="endText">';
$end = '<span class="cDGray right" style="white-space:nowrap;">';
//获取区间内的文章URL和TITLE
$code = $gather->get_sub_content($html, $start, $end);
$killHtml = '<iframe src="http://g.163.com/r?site=netease&affiliate=news&cat=article&type=tvscreen200x300&location=1" width="200" height="300" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>';
$killHtml2 = '<a href="http://news.163.com/"><img src="http://img1.cache.netease.com/cnews/img07/end_i.gif" alt="netease" width="12" height="11" border="0" class="icon" /></a>';
$code = str_replace($killHtml, "", $code);
$code = str_replace($killHtml2, "", $code);
$gather->vd($code);
?>

转载于:https://my.oschina.net/u/1538660/blog/496813

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值