PHP
网站制作中经常需要采集其他网站的数据,有些细节问题会导致遇到很大麻烦,至于攻防采集在此不细说,下面创新互联记录一下采集过程中的几个要点需要注意的地方
1、首先要获取到对方网址的所有内容,可能你会想到用file_gets_contents来获取,但此函数不适合用于获取远程文件,用于打开本地txt文件还是蛮好用的。那么用什么来获取呢?Curl,这个php的扩展来处理。下面就是一个简单的获取网页内容的基本配置,更多参数配置可以到网上去搜。
2、在采集网页匹配数据时,特别是在列表页,可以先把获取到的对方所有的空格换行等html标签去掉,写起正则来就会容易很多。这里提供一个函数:
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
本文题目:php网站制作中curl采集需要注意的一些地方和技巧
文章转载:https://www.cdcxhl.com/news21/245071.html
成都网站建设公司_创新互联,为您提供面包屑导航、做网站、企业网站制作、移动网站建设、云服务器、小程序开发
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联