curl,fsocketopen,socket 三种函数抓取html页面
2015-08-10 11:00
603 查看
(1) php - curl
(2) php - fsocketopen
(3) php - socket
<?php $ch_article = curl_init(); $url = 'www.baidu.com'; curl_setopt($ch_article, CURLOPT_URL, $url); curl_setopt($ch_article, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch_article, CURLOPT_HEADER, 0); $article_output = curl_exec($ch_article); curl_close($ch_article); echo $article_output; ?>
(2) php - fsocketopen
<?php $fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30); $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.baidu.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); ?>
(3) php - socket
<?php $url='www.baidu.com'; $Port = 80; $host_ip = gethostbyname('www.baidu.com'); $Header .= trim('Host:www.baidu.com')."\r\n"; $Header .= trim('Connection: Close')."\r\n"; $method = 'GET'; $Request = $method." " . '/' . " HTTP/1.1\r\n"; $Request .= $Header; $Request .= "\r\n"; $sockHttp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $resSockHttp = socket_connect($sockHttp, $host_ip, $Port); socket_write($sockHttp, $Request, strlen($Request)); $Response = ''; while ($Read_data = socket_read($sockHttp, 4096)){ $Response .= $Read_data; } socket_close($sockHttp); echo $Response; ?>
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- Python3写爬虫(四)多线程实现数据爬取
- Scrapy的架构介绍
- 爬虫笔记
- C#基于socket模拟http请求的方法
- 简单的Ruby中的Socket编程教程
- Socket不能选择本地IP连接问题如何解决
- C#之Socket操作类实例解析
- C#利用Windows自带gdi32.dll实现抓取屏幕功能实例
- 使用C#来编写一个异步的Socket服务器
- Winform实现抓取web页面内容的方法
- C#使用Socket快速判断数据库连接是否正常的方法
- 科学知识:理解socket
- php下目前为目最全的CURL中文说明
- PHP curl_setopt()函数实例代码与参数分析
- php采用curl访问域名返回405 method not allowed提示的解决方法
- php中file_get_content 和curl以及fopen 效率分析
- php中curl和file_get_content的区别
- php实现curl模拟ftp上传的方法