博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php采集远程文章简单类
阅读量:6253 次
发布时间:2019-06-22

本文共 3031 字,大约阅读时间需要 10 分钟。

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('/
"\\' ]+)["|\\']?\\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 "
\\r\\n"; echo "
\\r\\n";        var_dump($var);        echo "\\r\\n
\\r\\n"; echo "
"; }}?>
geturlfile($url);//定义采集列表区间$start = '
';$end = '
';//获取区间内的文章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 = '
';$end = '
';//获取区间内的文章URL和TITLE$code = $gather->get_sub_content($html, $start, $end);$killHtml = '';$killHtml2 = 'netease';$code = str_replace($killHtml, "", $code);$code = str_replace($killHtml2, "", $code);$gather->vd($code);?>//该片段来自于http://outofmemory.cn

 

 

php 文章采集正则代码

//采集html function getwebcontent($url){ $ch = curl_init(); $timeout = 10; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); $contents = trim(curl_exec($ch)); curl_close($ch); return $contents; } //获得标题和url $string = getwebcontent('http://www.***.com/learn/zhunbeihuaiyun/jijibeiyun/2'); //正则匹配
  • 获取标题和地址 preg_match_all ("/
  • (.*)<\/a>/",$string, $out, PREG_SET_ORDER);foreach($out as $key => $value){ $article['title'][] = $out[$key][2]; $article['link'][] = "http://www.***.com/learn/article/".$out[$key][1]; } //根据url获取文章内容 foreach($article['link'] as $key=>$value){ $content_html = getwebcontent($article['link'][$key]); preg_match("/
    [\s|\S]*?<\/div>/",$content_html,$matches); $article[content][$key] = $matches[0]; } //不转码还真不能保存成文件 foreach($article[title] as $key=>$value){ $article[title][$key] = iconv('utf-8', 'gbk', $value);//转码 } //存入文件 $num = count($article['title']); for($i=0; $i<$num; $i++){ file_put_contents("{
    $article[title][$i]}.txt", $article['content'][$i]); } ?>
  •  

    转载于:https://www.cnblogs.com/kenshinobiy/p/4651829.html

    你可能感兴趣的文章
    Extjs 4
    查看>>
    Java内存模型(JMM)以及 垃圾回收机制 小结
    查看>>
    开源3D游戏引擎Irrlicht简介
    查看>>
    如何花更少的时间学习更多的知识
    查看>>
    学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
    查看>>
    day04 列表 增删改查 元组 range
    查看>>
    php 调用百度sms来发送短信的实现示例
    查看>>
    基于canvas的原生JS时钟效果
    查看>>
    PL/SQL查看表结构
    查看>>
    JSON的学习理解
    查看>>
    经典SQL语句大全
    查看>>
    升级fedora 18到fedora 19
    查看>>
    Dictionary和数组查找效率对比
    查看>>
    alias命令详情
    查看>>
    自定义异步加载资源插件
    查看>>
    easyui combobox两种不同的数据加载方式
    查看>>
    Smarty配置与实例化
    查看>>
    ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...
    查看>>
    Siege——多线程编程最佳实例
    查看>>
    c# 生成 验证码
    查看>>