加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何使你的站跟新浪的新闻数据保持同步

发布时间:2022-04-11 20:15:42 所属栏目:PHP教程 来源:互联网
导读:采集已经不是什么新名词了,很多站长为了省事,也局限于人力的缺乏,使用程序来给自己的网站添砖加瓦,比如本人的个人网站www.xxfsw.com也采集了大量的新闻,那么如果实现呢?今天我们运用php来实现这个功能。 谈到采集,我们不得不说两个东西,第一个是如何
    采集已经不是什么新名词了,很多站长为了省事,也局限于人力的缺乏,使用程序来给自己的网站添砖加瓦,比如本人的个人网站www.xxfsw.com也采集了大量的新闻,那么如果实现呢?今天我们运用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 的源码目录,
 
cd ext
cd curl
phpize
./configure --with-curl =DIR
make
 
就会在PHPDIR/ext/curl /moudles/下生成curl .so的文件。
 
复制curl .so文件到extensions的配置目录,修改php .ini就好了。
 
然后你就可以利用curl来获取到指定url的网页源码了,这里给大家一个封装好的函数:
 
接下来就应该说到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]
废话不多说,直接上我的源码吧,有什么不懂的可以上百度查查。

何实现比较实时的同步呢,这可以利用windows下的任务计划或linux下的crontab 了,定时(比如十分钟)执行这个程序,这样,你就不再愁网站没有内容了。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读