搜索
系统检测到您的用户名不符合规范:

采集新浪科技文章代码

浏览:1335 发布日期:2016年06月09日 分类:功能实现 关键字: php,代码
新浪科技的文章一键采集ThinkPhp适用代码
/* 新浪科技文章采集 */
public function sina_tech() {
/* NEED CAULL PAGE NUM */
$page_num = intval($_POST['get_post_page_num']);
if (empty($page_num)) $page_num = 1;
/* FIRST COUNT */
$post_count_a = M('post')->count();
/* FOR CULL */
for ($page = 1; $page <= $page_num; $page++) {

$fullpage = CurlGetPage('http://roll.tech.sina.com.cn/s/channel.php?ch=05#col=30&spec=&type=&ch=05&k=&offset_page=0&offset_num=0&num=5&asc=&page='.$page);

preg_match_all('/<div\s+.*\s+class="d_list_txt".*>\s+(.*)\s+<\/div>/Us', $fullpage, $match);
$fullpage = iconv("GB2312", "UTF-8", $match[1][0]);//echo $data1;die;

preg_match_all('/<li>(.*)<\/li>/isU', $fullpage, $in_li_tags);
foreach (array_unique($in_li_tags[1]) as $row) {
/* title */
preg_match_all('/<a href="[^"]*" target="_blank">(.*)<\/a>/', $row, $title);
$title = $title[1][0];
/* link */
preg_match_all('/href="([^"]*)"/', $row, $link);
$link = $link[1][0];
/* DATE */
preg_match_all('/<span class="c_time">(.*)<\/span>/i', $row, $date);
$date = date("Y-", time()) . $date[1][0] . ':00';
// echo $title.' '.$link.' '.$date.'<br/>';

/* GOING THE POST PAGE */
$fullpage_post = CurlGetPage($link);
/* FIX TAGS */
$fullpage_post = preg_replace('/<div class="img_wrapper">(.*)<\/div>/isU', '${1}', $fullpage_post);
$fullpage_post = preg_replace('/<div class="content-page" >(.*)<\/div>/Us', '', $fullpage_post);
//echo htmlspecialchars($fullpage_post);die;

/* POST CONTENT */
preg_match_all('/<div\s+.*\s+id="artibody".*>\s+(.*)\s+<\/div>/Us', $fullpage_post, $post_content);
/* DEL A TAGS */
$post_content = preg_replace("/<a[^>]*>(.*)<\/a>/isU", '${1}', $post_content[1][0]);
// echo '<h1>'.$title.'</h1>'.$url.'<br/>'.$date.'<br/>'.$postCon.'<hr/>';

/* SAVE TO DB */
$post_title_count = M('post')->where("title='$title'")->count();
if ($post_title_count == 0) {
$dataMySql["title"] = $title;
$dataMySql["content"] = $post_content;
$dataMySql["datetime"] = $date;
M('post')->add($dataMySql);
}
}
}
/* LAST COUNT */
$post_count_b = M('post')->count();
$post_add_num = $post_count_b - $post_count_a;
/* CALLBACK */
if ($post_count_a == $post_count_b) {
echo '{"success":1,"msg":"文章数无变化"}';
} else {
echo '{"success":1,"msg":"成功采集 ' . $post_add_num . ' 篇文章"}';
}
}
收藏
AirLind
积分:218 等级:LV1
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /