http://www.lhycorne.com

                                                                  【好运快三app】php使用什么做数据采集-PHP问题

                                                                  什么叫采集?

                                                                  就是使用PHP程序,把其他网站中的信息抓取到我们自己的数据库中、网站中。

                                                                  PHP制作采集的技术:

                                                                  从底层的socket到高层的文件操作函数,一共有3种方法可以实现采集。

                                                                  1. 使用socket技术采集:(推荐学习:PHP编程从入门到精通)

                                                                  socket采集是最底层的,它只是建立了一个长连接,然后我们要自己构造http协议字符串去发送请求。

                                                                  例如要想获取优酷页面的内容,用socket写如下:

                                                                  <?php  //连接,$error错误编号,$errstr错误的字符串,30s是连接超时时间  $fp=fsockopen("www.youku.com",80,$errno,$errstr,30);  if(!$fp) die("连接失败".$errstr);     //构造http协议字符串,因为socket编程是最底层的,它还没有使用http协议  $http="GET /?spm=a2hww.20023042.topNav.5~1~3!2~A HTTP/1.1\r\n";   //  \r\n表示前面的是一个命令  $http.="Host:www.youku.com\r\n";  //请求的主机  $http.="Connec(tion:close\r\n\r\n";   // 连接关闭,最后一行要两个\r\n     //发送这个字符串到服务器  fwrite($fp,$http,strlen($http));  //接收服务器返回的数据  $data='';  while (!feof($fp)) {  $data.=fread($fp,4096);  //fread读取返回的数据,一次读取4096字节  }  //关闭连接  fclose($fp);  var_dump($data);  ?>

                                                                  打印出的结果如下,包含了返回的头信息及页面的源码:

                                                                  php-147.png

                                                                  2. 使用curl_一套函数

                                                                  curl把HTTP协议都封装成了很多函数,直接]传相应参数即可,降低了编写HTTP协议字符串的难度。

                                                                  前提:在php.ini中要开启curl扩展。

                                                                  function getHTTPS($url) {  $ch = curl_init();  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  curl_setopt($ch, CURLOPT_HEADER, false);  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_REFERE,R, $url);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  $result = curl_exec($ch);  curl_close($ch);  return $result;}var_dump(getHTTPS($url))[;

                                                                  打印出的结果如下,只包含页面的源码:

                                                                  php-148.png

                                                                  3. 直接使用file_g)et_contents(最顶层的)

                                                                  前提:在php.ini中设置允许打开一个网络的url地址。

                                                                  php-149.png

                                                                  //使用file_get_contents()  $data=file_get_contents("http://www.youku.com");  var_dump($data);

                                                                  php-150.png

                                                                  郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

                                                                  上一篇:苹果iPhone 11等新品发布,哪些亮点值得投资者真正关注? - iPhone 11
                                                                  下一篇:没有了