使用SOCKET获取网页的内容
使用fsockopen()函数来实现获取页面信息,完整代码如下
//设置字符集(由于要抓取的网易网站字符集编码是gbk编码)
header("content-type:text/html;charset=gb2312");
//设置中国时区
date_default_timezone_set('PRC');
//页面域名
$hostname = "news.163.com";//"www.163.com";
//请求方式
$method = 'GET';
//URI资源唯一标识
$target  = '/17/1225/09/D6G89EED000189FH.html';        // Specific program
//所带参数
$getValues = '';// or $getValues = "?key1=value1&key2=value2";
$port = 80;
$fp = fsockopen($hostname, $port=80, $errno, $errstr, 30);
if (!$fp) {
    echo "####Failed!$errstr ($errno)<br/>\n";
} else {
	//注意空格
	$out = "$method $target$getValues HTTP/1.1\r\n"; //原$out = "GET / HTTP/1.1\r\n";
	//$out .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n";
	//$out .= "Accept-Encoding: gzip, deflate\r\n";
	//注意冒号后面要有一个空格
	$out .= "Accept-Language: zh-CN,zh;q=0.9\r\n";
	$out .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\n";
    $out .= "Host: $hostname\r\n";
	$out .= "Cache-Control: max-age=0\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
根据以上示例,可以进行通过设置请求头信息,即可实现任意端口的访问
代码执行后效果

使用SOCKET获取网页的内容的更多相关文章
- Python获取网页指定内容(BeautifulSoup工具的使用方法)
		Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ... 
- C语言之socket获取网页源码
		写爬虫也许你用的是python,类似urlopen(url).read()即可获得普通的网页的源码,或者用的java的网络库加上流操作,或者其他高级语言.但你有没有想过使用C语言来实现呢?我曾经以为用 ... 
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
		主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: #include <stdio.h> #include <sys/types. ... 
- telnet建立http连接获取网页HTML内容
		利用telnet可以与服务器建立http连接,获取网页,实现浏览器的功能.它对于需要对http header进行观察和测试到时候非常方便.因为浏览器看不到http header. 步骤如下: 1. 运 ... 
- 黄聪:C#获取网页HTML内容的三种方式
		C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ... 
- java 获取网页指定内容
		import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; ... 
- [python]获取网页中内容为汉字的字符串的判断
		实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ... 
- C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。
		转载请声明出处! http://www.cnblogs.com/linguanh/category/633252.html 距离上次 谈 C++ 制作json 或者其他数据传送给 服务器,时隔两个多月 ... 
- php利用curl获取网页title内容
		/**$html = curl_get_file_contents($url); $title = get_title_contents($html); var_dump($title);*/ fun ... 
随机推荐
- 【BZOJ1082】[SCOI2005]栅栏(搜索)
			[BZOJ1082][SCOI2005]栅栏(搜索) 题面 BZOJ 洛谷 题解 随便写个爆搜,洛谷上就\(80\)分了.先放爆搜代码: #include<iostream> #inclu ... 
- 【转】四款经典3.7v锂电池充电电路图详解
			3.7v锂电池充电电路图(一) 1.锂电池的充电: 根据锂电池的结构特性,最高充电终止电压应为4.2V,不能过充,否则会因正极的锂离子拿走太多,而使电池报废.其充放电要求较高,可采用专用的恒流.恒压充 ... 
- 洛谷 P2047 [NOI2007]社交网络 解题报告
			P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ... 
- [JSOI2007]文本生成器(AC自动机,DP)
			题目链接: 洛谷 LOJ BZOJ 题目大意:给定 $n$ 个只含大写字母的串(称为可读串),问有多少种只含大写字母的长为 $m$ 的串,包含至少一个可读串. $1\le n\le 60,1\le \ ... 
- spring.net框架配置和使用
			spring.net框架学习笔记 spring.net框架是用于解决企业应用开发的复杂性的一种容器框架,它的一大功能IOC(控制反转),通俗解释就是通过spring.net框架的容器创建对象实体,而不 ... 
- 解题:SHOI 2006 有色图
			题面 本质上是在对边求置换,然后每个循环里涂一样的颜色,但是还是要点上入手,考虑每条边的两个端点是否在一个循环里 如果在一个循环里,那么当循环长度$len$为奇数时只有转一整圈才行,而边的总数是$\f ... 
- 界面编程之QT窗口系统20180726
			/*******************************************************************************************/ 一.坐标系统 ... 
- CronExpression
			CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTr ... 
- 61. Rotate List(M);19. Remove Nth Node From End of List(M)
			61. Rotate List(M) Given a list, rotate the list to the right by k places, where k is non-negative. ... 
- ELK logstash 处理MySQL慢查询日志
			在生产环境下,logstash 经常会遇到处理多种格式的日志,不同的日志格式,解析方法不同.下面来说说logstash处理多行日志的例子,对MySQL慢查询日志进行分析,这个经常遇到过,网络上疑问也很 ... 
