许多中较受欢迎的框架蟒蛇的NodeJS,JAVA,C#的框架内爬行动物,PHP是基于,其中最流行的爬行动物蟒蛇为主宽,已经有软件傻瓜化操作,如八个爪鱼,机车和其他软件。

 今天是我们第一次使用PHP来实现履带,先不要用实践的爬行动物框架也了解爬行动物的原则的基础上,然后使用PHP的lib,框架和扩大实践尝试。



1。PHP简单的爬行动物 - 原型

爬虫原则:

下面是一个例子,我们排下来,然后分析
功能启动

2。使用crul LIB

卷曲的lib是一个比较成熟的,异常处理,HTTP头,POST和等做的非常好,它在PHP MySQL的存储操作更安心工作是非常重要的。上的卷曲具体说明可以查看PHP官方文档,但更多的麻烦在多线程卷曲(Curl_multi)条款。

打开crul
对于winow系统:
- PHP。在改性(注;可被移除)

延长= PHP_curl。DLL

使用crul爬行动物步:
- 基本的想法是使用curl_init()初始化卷曲会话以使用卷曲的功能;
- 然后你可以()来设置你通过curl_setopt需要的所有选项;
- 然后curl_exec()来执行会话;
- 一个完整的使用会话curl_close()后关闭会话。

<?php$章= Curl_init();

$ Fp的的的= F打开(“Example_homepage。文本”“W”); Curl_setopt($章,CURLOPT_FILE, $ Fp ); Curl_setopt($章,CURLOPT_HEADER, 0 ); Curl_exec($章 ); Curl_close($章 ); FCLOSE($ Fp);?>


一个完整点的例子:

为支持HTTPS,您需要在函数中添加如下设置:

curl_setopt($ CH,CURLOPT_HTTPAUTH,CURLAUTH_BASIC); 
curl_setopt($ CH,CURLOPT_USERPWD, “用户名:密码”);    
curl_setopt($ CH,CURLOPT_SSLVERSION,3); 
curl_setopt($ CH,CURLOPT_SSL_VERIFYPEER,FALSE); 
curl_setopt($ CH,CURLOPT_SSL_VERIFYHOST,2);

结果不解:
结果我们通过非常不同的第一和第二部分,第1个部分URL能够获得四千多条数据,而获得第2部分已经有45个数据。

在那里,我们得到的URL数据可能被重复的过程对我github上这部分,对应demo2-01。PHP或demo2-02。php

3。的file_get_contents / stream_get_contents的卷曲比较

3.1周的file_get_contents / stream_get_contents比较


$处理= F打开($网址“R”);

$内容= Stream_get_contents($处理-1);

//读取字节资源的最大数量流向一个字符串,要读出的第二个参数。默认值为-1(读取所有缓存数据)


3.2周的file_get_contents / stream_get_contents的卷曲比较

- FOPEN /每天的file_get_contents重新做一个DNS查询的DNS信息请求不被缓存。但卷曲会自动缓存DNS信息。一种用于网页或图片相同的域名的DNS查询请求下一次。这大大降低DNS查询的数量。卷曲的性能这么多比的fopen /的file_get_contents更好。

相关建议:

这些技术知识PHP爬虫点总结的详细信息,请PHP的中国其他相关文章!


本文链接:3.file_get_contents/stream_get_contents与curl对比

您可能也会喜欢

友情链接:

大悲咒注音 经文 心经唱诵