宝哥软件园

php curl中常用的5个经典示例

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

我用的是php,curl主要是抓取数据,当然我们也可以用其他的方法来抓取数据,比如fsockpen、file _ get _ contents等等。但只能抓住那些可以直接访问的页面,很难抓住有页面访问控制的页面或者登录后的页面。

1.在没有访问控制的情况下抓取文件

?PHP $ ch=curl _ init();curl_setopt($ch,CURLOPT_URL,' http://localhost/my test/phpinfo . PHP ');curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//如果这一行被注释掉,将直接输出$ result=curl _ exec($ ch);curl _ close($ ch);2.代理抓取

为什么使用代理进行爬行?以谷歌为例。如果你在短时间内频繁抓取谷歌数据,你将无法抓取。谷歌限制你的ip地址,所以你可以改变你的代理来再次捕捉它。

pre name='code' class='php '?PHP $ ch=curl _ init();curl_setopt($ch,CURLOPT_URL,' http://blog . 51 yip.com ');curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT _ HTTPPROXYTUNNEL,TRUE);curl_setopt($ch,CURLOPT_PROXY,125 . 21 . 23 . 6:8080);//url_setopt($ch,CURLOPT_PROXYUSERPWD,' user : password ');如果需要密码,添加这个$ result=curl _ exec($ ch);curl _ close($ ch);3.发布数据后,抓取数据

单说数据提交,因为使用curl的时候,经常会有数据交互,所以更重要。

?PHP $ ch=curl _ init();/*这里需要注意的是,要提交的数据不能是数组或更高的数组*如array(' name '=serialize(array(' tank ',' Zhang '),' sex'=1,' born '=' 20101010 ')*如array ('name'=array()。Sex'=1,' born '=' 20101010 ')*/$ data=array(' name '=' test ',' sex'=1,' born '=' 20101010 ');curl_setopt($ch,CURLOPT_URL,' http://localhost/my test/curl/upload . PHP ');curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$ data);curl _ exec($ ch);在upload.php文件中,print _ r($ _ POST);使用curl,您可以捕获upload.php输出的内容数组([name]=test[sex]=1[birth]=20101010)

4.用页面访问控制抓取一些页面

我之前写过一篇关于页面访问控制的三种方法的文章。如果你感兴趣,你可以看看。

如果您以上述方式捕获它,您将报告以下错误

您无权查看此页面您无权使用您提供的凭据查看此目录或页面,因为您的网页浏览器正在发送网页服务器未配置为接受的万维网验证标题字段。

此时,我们将使用CURLOPT_USERPWD进行验证

?PHP $ ch=curl _ init();curl_setopt($ch,CURLOPT_URL,' http://club-China ');/*CURLOPT_USERPWD主要用于破解页面访问控制。*例如,我们通常通过htpasswd生成页面控件。*///curl_setopt($ch,CURLOPT_USERPWD,' user : password ');curl_setopt($ch,CURLOPT_HTTPGET,1);curl_setopt($ch,CURLOPT _ REFERER,' http://club-China ');curl_setopt($ch,CURLOPT_HEADER,0);$ result=curl _ exec($ ch);curl _ close($ ch);以上五个php curl中常用的经典例子,都是边肖分享的内容,希望能给大家一个参考和支持。

更多资讯
游戏推荐
更多+