采集文章系统(PHPCMS采集和其他采集系统大同小异规则无法自定义,就不好办了)
优采云 发布时间: 2022-02-04 04:22采集文章系统(PHPCMS采集和其他采集系统大同小异规则无法自定义,就不好办了)
PHPcms 的 采集 类似于其他 采集 系统。首先从列表页获取内容列表,然后批量采集列表中的内容。当没有列表(如微信、今日头条)或者不想采集全部而只采集某个内容时,都不好处理!
也有网友分享了采集单页功能,要么是规则无法自定义,要么是借用了第三方接口。以下教程是我自己写的采集管理采集规则,独立采集,不依赖第三方!
先看视频
修改方法如下:
第一步:
打开
/phpcms/modules/采集/node.php
修改public_test_content方法为如下代码
//测试文章内容采集
public function public_test_content() {
$url = isset($_GET['url']) ? urldecode($_GET['url']) : exit('0');
$nodeid = isset($_GET['nodeid']) ? intval($_GET['nodeid']) : showmessage(L('illegal_parameters'), HTTP_REFERER);
pc_base::load_app_class('collection', '', 0);
if ($data = $this->db->get_one(array('nodeid'=>$nodeid))) {
$contents = collection::get_content($url, $data);
//加载所有的处理函数
$funcs_file_list = glob(dirname(__FILE__).DIRECTORY_SEPARATOR.'spider_funs'.DIRECTORY_SEPARATOR.'*.php');
foreach ($funcs_file_list as $v) {
include $v;
}
//在这里测试
foreach ($contents as $_key=>$_content) {
if($_key=='content') $contents['spider_image']=spider_images(new_stripslashes($_content));
if(trim($_content)=='') $contents[$_key] = "";//'◆◆◆◆◆◆◆◆◆◆'.$_key.' empty◆◆◆◆◆◆◆◆◆◆';
}
if(isset($_GET['jsoncallback'])){
if (pc_base::load_config('system', 'charset') == 'gbk') {
$contents = array_iconv($contents, 'utf-8', 'gbk');
}
echo safe_replace($_GET['jsoncallback'])."({\"items\":".json_encode($contents)."})";
}else{
print_r($contents);
}
} else {
showmessage(L('notfound'));
}
}
下面也添加
public function public_spider(){
$nodelist = $this->db->select(array('siteid'=>$this->siteid),'nodeid,name','','nodeid DESC');
$buttons = $this->select2arr($nodelist, '', 'id=\'nodeid\'', '选择规则');
include $this->admin_tpl('node_spider');
}
private static function select2arr($array = array(), $id = 0, $str = '', $default_option = '') {
$string = '';
$default_selected = (empty($id) && $default_option) ? 'selected' : '';
if($default_option) $string .= "$default_option";
if(!is_array($array) || count($array)== 0) return false;
foreach($array as $key=>$vs) {
//$selected = $id==$key ? 'selected' : '';
$string .= ''.$vs['name'].'';
}
$string .= '';
return $string;
}
/phpcms/modules/采集/classes/spider_photos.php
增加
function spider_images($str) {
$field = $GLOBALS['field'];
$array = array();
if(empty($str)) return $array;
$array[$field.'_url'] = array();
preg_match_all('/(?:(http:|https:|rtsp:))((?!thumb)\S)*?(?:\.jpg|\.jpeg|\.png|\.bmp|\.gif)/i', $str, $out);//不含有thumb的url
if (isset($out[0]))foreach ($out[0] as $v) {
$array[$field.'_url'][] = $v;
}
return $array;
}
第 2 步:
这是付费内容,您需要阅读隐藏内容