1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3
 4 # requests -> urllib -> socket
 5 import socket
 6 from urllib.parse import urlparse
 7
 8
 9 def get_url(url):
10     # 通过socket请求html
11     url = urlparse(url)
12     host = url.netloc
13     path = url.path
14     if path == '':
15         path = '/'
16
17     # 建立连接
18     client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
19     client.connect((host, 80))
20
21     client.send("GET {} HTTP/1.1\r\nHost:{}\r\nConnection:close\r\n\r\n".format(path, host).encode('utf-8'))
22
23     data = b""
24     while True:
25         d = client.recv(1024)
26         if d:
27             data += d
28         else:
29             break
30
31     data = data.decode('utf-8')
32     html_data = data.split('\r\n\r\n')[1]
33     print(data)
34     print(html_data)
35     client.close()
36
37
38 if __name__ == '__main__':
39     get_url('http://www.baidu.com')

转载于:https://www.cnblogs.com/zydeboke/p/11284004.html

【9.4】socket模拟http请求相关推荐

  1. php socket 模拟http请求

    <?php//fsockopen - 打开一个网络连接或者一个Unix套接字连接 注意这里只能是 域名 或 ip $flag = 0; $params = ''; $errno = ''; $e ...

  2. php socket 用户名密码,PHP用socket模拟post之fsocketopen

    地听说这个功能需求的时候,立即就蒙了,不骗大家!首先PHP的socket几乎都没使用过,其次没有听说过post还能用PHP的socket来模拟的呢!后来找了个案例看了看,才明白其实没有那么高深,只不过 ...

  3. php 进行http请求,PHP模拟http请求的方法详解

    本文实例讲述了PHP模拟http请求的方法.分享给大家供大家参考,具体如下: 方法一:利用php的socket编程来直接给接口发送数据来模拟post的操作. 建立两个文件post.php,getpos ...

  4. curl命令java_上curl java 模拟http请求

    最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接. java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次 ...

  5. JAVA编写的使用Socket模拟Http的GET操作

    JAVA编写的使用Socket模拟Http的GET操作,看后就很容易理解Web浏览器的原理了. import java.io.BufferedReader; import java.io.InputS ...

  6. C# Socket模拟发送接收

    Socket简介 通过TCP/IP与仪器或设备通讯,在C#语言中,我们通常采用Socket.本项目是一个简单的Socket建立服务监听与Socket作为客户端请求的一个示例. 项目结构 客户端项目 S ...

  7. Socket模拟HTTP协议之火车票购票软件

    前段时间我发布过一篇文章描述Socket进行HTTP/HTTPS操作,但是还是很多朋友觉得多次一举,放着简单的HttpWebRequest不用! 实际是有些人根本没看文章就乱说了,我们的目地是提高访问 ...

  8. python爬虫网络请求超时_6、web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...

    利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码 read()读出html源码内容 decode("utf-8")将字节转化成字符 ...

  9. [转】HTTP请求流程(二)----Telnet模拟HTTP请求

    转自: http://www.cnblogs.com/stg609/archive/2008/07/06/1237000.html 上一部分"流程简介", 我们大致了解了下HTTP ...

最新文章

  1. python工作太难找-Python工作难找吗?
  2. gis 路径拟合算法_决策树算法十问及经典面试问题
  3. html zoom中心,css中的zoom的使用
  4. linux-free命令
  5. 软件工程---在此基础上,进行软件的改进
  6. 三、Vue组件化开发学习笔记——组件化的基本步骤、全局组件和局部组件、父组件和子组件、注册组件的语法糖、模板分离写法、组件的数据存放
  7. npm install --save 与 npm install --save-dev 的区别
  8. android初始化activity时隐藏软键盘
  9. 把握初期企业的发展战略规划
  10. java scriptengine e-_Java使用ScriptEngine(javax.script)
  11. 电影票预售系统1.0
  12. 计算机快捷键英语,输入法电脑中英文切换快捷键
  13. 广东金融学院大学计算机基础,好投顾网使用说明广东金融学院专用).doc
  14. oracle 按照中文姓首字母排序,按照偏旁部首,笔画排序 sql
  15. 出版一本书可以赚多少钱_出版商精选:2015年29本书
  16. 像中文的罗马音字体复制_罗马音大全可复制汉字免费版下载-罗马音大全可复制吊汉字app在线生成版v1.1.2 手机版-007游戏网...
  17. 挖掘机技术到底哪家强?这个问题终于有答案了!!
  18. 小米笔记本12.5英寸装ubuntu后设置快捷键开启和关闭触摸板
  19. PHP解码JavaScript中的escape()方法
  20. 在python中可以用什么关键字来声明一个类_python里的raise是什么意思

热门文章

  1. c++中static的全部用法
  2. ansible-playbook之循环(Loops)
  3. JS获取HTML video标签视频第一帧
  4. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)
  5. [转]Oracle分页之三:利用PagerView来实现无刷新GridView
  6. 转载文章:Microsoft 将僵尸网络威胁智能分析程序引入云中以提供近实时数据
  7. 恢复Cisco路由器口令
  8. L3-023 计算图 (30 分)--PAT 团体程序设计天梯赛 GPLT
  9. 蓝桥杯 ADV-238 算法提高 P0101
  10. 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级真题