400-800-9385
网站建设资讯详细

php网站制作中curl采集需要注意的一些地方和技巧

发表日期:2018-01-03 13:58:30   作者来源:方维网络   浏览:4580   标签:php网站建设    
 PHP网站制作中经常需要采集其他网站的数据,有些细节问题会导致遇到很大麻烦,至于攻防采集在此不细说,下面方维网络记录一下采集过程中的几个要点需要注意的地方

    1、首先要获取到对方网址的所有内容,可能你会想到用file_gets_contents来获取,但此函数不适合用于获取远程文件,用于打开本地txt文件还是蛮好用的。那么用什么来获取呢?Curl,这个php的扩展来处理。下面就是一个简单的获取网页内容的基本配置,更多参数配置可以到网上去搜。
 
    php网站制作
2、在采集网页匹配数据时,特别是在列表页,可以先把获取到的对方所有的空格换行等html标签去掉,写起正则来就会容易很多。这里提供一个函数:

    cul采集函数
 
3、在获取到对方的数据的时候就要开始正则匹配了,这里介绍几个常有的匹配规则:
一个是任意字符(.*?),另一个是([\s\S]*?)表示包括换行符的任意字符,在匹配过程中够用了。然后选择匹配模式i即可。

4、介绍一下采集的思路,可以先把符合页面的数据下载下来保存为txt文件,再来本地处理就更快一些。还有就是为了避免频繁访问对方网站或数据丢失状态可以加一个while(){}循环或是sleep()暂停几秒来处理。把相关的数据库处理函数要封装好,直接调用。

5、还有一个重要的事情,很多人可能会忽略,就是页面的编码问题,如果对方网站是gbk的编码,则相应的php文件或是用于提交条件的html文件也会是gbk的编码。但是这会存在一个问题,就是发生在gbk的html向gbk的php页面提交中文数据的时候,gbk的php文件可能就不会给你反应,如果你用这些中文数据去匹配的时候会遇到问题。于是要转变思路,utf-8是最好的编码模式,所以我们要采用utf-8的编码,而对方的又是gbk的,如何做呢?
$allcontent =iconv('gbk', 'utf-8',removetag(curl_exec($ch)));
上面的这样转换就ok了!所有的都用utf-8

本文作者:方维网络王国梁
如没特殊注明,文章均为方维网络原创,转载请注明来自https://www.szfangwei.cn/news/4092.html