_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP扩展curl和正则表达式轻松采集新闻

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:采集新闻轻松扩展
  采集已经不是什么新名词了很多站长为了省事也局限于人力的缺乏,使用程序来给自己的网站添砖加瓦,比如本人的个人网站也采集了大量的新闻,那么如果实现呢?今天我们运用php来实现这个功能

谈到采集,我们不得不说两个东西,第一个是如何获取远程网站的源代码,这个可以通过php的一个扩展curl来获�硪桓鍪侨绻テヅ淠阈枰男畔ⅲ飧龅慕饩霭旆ㄊ钦虮泶锸健�

Windows下开启curl的方法如下:

1、拷贝PHP目录中的libeay32.dll,ssleay32.dll,php5ts.dll,php_curl.dll文件到system32目录。

2、修改php.ini:配置好extension_dir,去掉extension=php_curl.dll前面的分号。

3、重起apache。

Linux下开启curl的方法如下:

进入安装原php的源码目录,

cdext

cdcurl

phpize

./configure--with-curl=DIR

make

就会在PHPDIR/ext/curl/moudles/下生成curl.so的文件。

复制curl.so文件到extensions的配置目录,修改php.ini就好了。

然后你就可以利用curl来获取到指定url的网页源码了,这里给大家一个封装好的函数:

以下为引用的内容:

functiongetwebcontent($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;

}

接下来就应该说到php中的正则表达式了:

1.中括号

[0-9]匹配0-9

[a-z]匹配a-z小写字母

[A-Z]匹配A-Z大写字母

[a-zA-Z]匹配所有大小写字母

可以使用ascii来制定更多

2.量词

以下为引用的内容:

p+匹配至少一个含p的字符串

p*陪陪任何包含0个或多个p的字符串

p?匹配任何包含0个或一个p的字符串

p{2}匹配包含2个p的序列的字符串

p{2,3}匹配任何包含2个或3个的字符串

p$匹配任何以p结尾的字符串

^p匹配任何以p开头的字符串

[^a-zA-Z]匹配任何不包含a-zA-Z的字符串

p.p匹配任何包含p、接下来是任何字符、再接下来有又是p的字符串

^.{2}$匹配任何值包含2个字符的字符串

<b>(.*)b>匹配任何被<b>>包围的字符串

p(hp)*匹配任何一个包含p,后面是多个或0个hp的字符串

3.预定义字符范围

以下为引用的内容:

[:alpha:]同[a-zA-Z]

[:alnum:]同[a-zA-Z0-9]

[:cntrl:]匹配控制字符,比如制表符,反斜杠,退格符

[:digit:]同[0-9]

[:graph:]所有ASCII33~166范围内可以打印的字符

[:lower:]同[a-z]

[:punct:]标点符号

[:upper:]同[A-Z]

[:space:]空白字符,可以是空格、水平制表符、换行、换页、回车

[:xdigit:]十六进制符同[a-fA-F0-9]

废话不多说,直接上我的源码吧,有什么不懂的可以上百度查查。

以下为引用的内容:

<?php

header("Content-type:text/html;charset=utf-8");

getinfo("http://rss.*******.com.cn/rollnews/news/gn_total.js",1);

getinfo("http://rss.*******.com.cn/rollnews/news/gj_total.js",2);

getinfo("http://rss.*******.com.cn/rollnews/news/sh_total.js",3);

getinfo("http://rss.*******.com.cn/rollnews/sports/sports_total.js",4);

getinfo("http://rss.*******.com.cn/rollnews/tech/tech1_total.js",5);

getinfo("http://rss.*******.com.cn/rollnews/finance/finance1_news_total.js",6);

getinfo("http://rss.*******.com.cn/rollnews/ent/ent_total.js",7);

getinfo("http://rss.*******.com.cn/rollnews/jczs/jczs_total.js",8);

functiongetinfo($infourl,$catid)

{

$pagecontent=getwebcontent($infourl);

preg_match_all("/title:"(.*?)"/",$pagecontent,$match);

$titlearr=$match[1];

preg_match_all("/link:"(.*?)"/",$pagecontent,$match);

$urlarr=$match[1];

for($i=1;$i<count($urlarr);$i++){

echo"go{$titlearr[$i-1]} ";

$title=iconv("gbk","utf-8",$titlearr[$i-1]);

$content=iconv("gbk","utf-8",getnewscontent($urlarr[$i]));

$content=mysql_escape_string($content);

if(!insertdb($title,$content,$catid))break;

}

}

functioninsertdb($title,$content,$catid){

将数据写入你的库

}

functiongetnewscontent($newsurl){

$newscontent=getwebcontent($newsurl);

preg_match_all("/<divclass="blkContainerSblkCon"id="artibody">([sS]*?)<!--publish_helper_end-->/",$newscontent,$match);

$content=preg_replace("/<a.*?</a>/si","",$match[1][0]);

$content=preg_replace("/<divstyle="overflow:hidden;zoom:1;"class="otherContent_01">.*?</div>/si","",$content);

$content=preg_replace("/<divclass="blk-video">.*?<divclass="clearcl"></div>/si","",$content);

$content=str_replace("<divstyle="clear:both;height:0;visibility:hiddden;overflow:hidden;"></div>","",$content);

return$content;

}

functiongetwebcontent($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;

}

?>


    希望这篇PHP扩展curl和正则表达式轻松采集新闻的文章能够对您有所帮助,如果您觉得这篇网站维护教程有用的话,别忘了推荐给您的朋友哦!如果您有好的经验方法,不妨拿出来和大家一起分享:假如每个人都拿出一个经验,那么我们都将额外的获取一堆他人的经验。
请记住本站永久域名:(黑客防线网安服务器维护方案维护基地)Www.Rongsen.Com.Cn
    黑客防线网安服务器维护方案本篇连接:http://kj.rongsen.com.cn/show-17649-1.html
网站维护教程更新时间:2023-02-15 10:54:31  【打印此页】  【关闭
0
顶一下
0
踩一下
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer