采集文章系统(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 步:

  这是付费内容,您需要阅读隐藏内容

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线