<?php
header("Content-type: text/html;charset=utf-8");
//set_time_limit(0);
$dbname = SAE_MYSQL_DB;
$host = SAE_MYSQL_HOST_M;
$port = SAE_MYSQL_PORT;
$user = SAE_MYSQL_USER;
$pwd = SAE_MYSQL_PASS;
$connect = @mysql_connect("{$host}:{$port}",$user,$pwd,true);
if(!$connect) {
die("Connect Server Failed:". mysql_error());
}
if(!mysql_select_db($dbname,$connect)) {
die("Select Database Failed:". mysql_error($connect));
}
mysql_query("set names 'utf8'");
$rules = array(
'start'=>'http://www.douluodalu.com.cn/jueshitangmen/6860.html',//开始采集的url
'title'=>'/<h1>(.*?)</h1>/',//文章title
'time'=>'/发布时间:(.*?) /',//发布时间
'content'=>'/"></div><p>([sS]*?)<div align=center>/',//内容
'next'=>'/下一篇: <a href="(.*?)"/',//下一篇网址
);
//每次排序,取出上一次的最后一篇url
$url = getLatest();
//最后一章的下一篇为空,由此循环
while($url != null && $url !=""){
$value = get($url);
$value = _prefilter($value);//去除空白字符,空格,回车
$context = getContent($value);
$context['url'] = $url;//当前url,同时还有下一篇的url
$url = $context['next'];
var_dump($url);
//防止重复
if(storage($context)){
storageWP($context);
};
}
echo"采集结束";
mysql_close($connect);
function storage($content_array){
global $connect;
$sql ="insert into `articles` (`id`, `title`, `time`, `url`, `content`) values(null,
'{$content_array['title']}',
'{$content_array['time']}',
'{$content_array['url']}',
'{$content_array['content']}');";
$result = mysql_query($sql,$connect);
return $result;
}
function storageWP($content_array){
global $connect;
$result = mysql_query("select max(ID) from wp_posts;",$connect);
$row = mysql_fetch_row($result);
$last_id = $row[0] +1 ;
$sql ="INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES (null,1,'{$content_array['time']}', '{$content_array['time']}', '{$content_array['content']}', '{$content_array['title']}', '', 'publish', 'open', 'open', '', '{$content_array['title']}', '', '', '{$content_array['time']}', '{$content_array['time']}', '', 0, 'http://iniu.sinaapp.com/?p={$last_id}', 0, 'post', '', 0);";
$result = mysql_query($sql,$connect);
$sql ="INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES({$last_id}, 1, 0);";
$result = mysql_query($sql,$connect);
return $result;
}
function getContent($value){
global $rules;
preg_match($rules['title'],$value, $title);
preg_match($rules['time'],$value, $time);
preg_match($rules['next'],$value, $next);
preg_match($rules['content'],$value, $content);
$context = array(
'title' => addslashes($title[1]),
'time' => $time[1],
'next' => addslashes($next[1]),
'content' => addslashes($content[1])
);
return $context;
}
function getLatest(){
global $connect;
global $rules;
$sql ="SELECT url FROM `articles` ORDER BY id DESC LIMIT 1";
$result = mysql_query($sql,$connect);
$row=mysql_fetch_row($result);
if($row){
return $row[0];
}else{
return $rules['start'];
}
}
function get($url){
$ch = curl_init($url) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$value = curl_exec($ch) ;
curl_close($ch);
return $value;
}
function _prefilter($output) {
strip_tags($output);
$output=preg_replace("///[Sftv ]*?;[r|n]/","", $output);
$output=preg_replace("/<!--[sS]*?-->/","", $output);
$output=preg_replace("/>[s]+</","><", $output);
$output=preg_replace("/;[s]+/",";", $output);
$output=preg_replace("/[s]+}/","}", $output);
$output=preg_replace("/}[s]+/","}", $output);
$output=preg_replace("/{[s]+/","{", $output);
$output=preg_replace("/([s]){2,}/","$1", $output);
$output=preg_replace("/[s]+=[s]+/","=", $output);
$output=preg_replace("/<br />/","",$output);
$output=preg_replace("/n/","",$output);
$output=preg_replace("/ /","",$output);
return $output;
}
?> 相关文章
Aionclaw参与征文比赛怎么赢积分_优质使用心得投稿获取大额积分攻略
Mac怎么批量提取多个压缩包到独立文件夹
电脑循环闹钟怎么设置倒计时重复提醒
小佩Ai全自动猫厕所ULTRA,省事、更省心
Outlook提示“数据文件已达到最大大小上限”怎么拆分PST文件
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。
80
2026.09.23
本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。
40
2026.09.23
本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。
20
2026.09.23
本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。
20
2026.09.22
本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。
40
2026.09.22
本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。
40
2026.09.22
本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。
40
2026.09.22
本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。
60
2026.09.22
本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。
80
2026.09.22
热门下载
相关下载
精品课程









