问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用同一个socket连接,发送多次http请求

发布网友 发布时间:2022-04-22 06:07

我来回答

1个回答

热心网友 时间:2023-07-08 01:26

#python 3.X

# requests  -->urllib -->socket

#导入socket 模块

import socket

#导入url解析的模块

from urllib.parseimport urlparse

#通过socket发送http 请求

def get_url(url):

#解析url ,获取host 及uri

    url = urlparse(url)

#将URL解析为6个组件

# <scheme>://<netloc>/<path>;<params>?<query>#<fragment>

    host =url.netloc

    path =url.path

    print(host,path)

#如请求资源为空,则设置为/

    if path =="":

        path ="/"

    #建立socket 客户端连接

    client = socket.socket()

    client.connect((host, 80))

#发送请求信息 \r\n win 的换行回车   可以fiddler抓包 看看http请求行的格式。

python 3.X 发送的网络包,都是字节,所以,发送的信息,必须编码。

    client.send("GET {} HTTP/1.1\r\nHost: {} \r\nConnection:close\r\n\r\n".format( path , host ).encode("utf-8"))

#3.x 网络传输的数据都是字节。必须以字节接收。如果想打印字符串,必须解码。

    data =b""

    #while 循环接收请求响应的数据。

    while True:

d = client.recv(1024)#每次接收1024个字节

        if d:#如果接收数据不为空,则拼接

            data += d

print(1)

else:#否则,不再接收数据则跳出循环。

            break

    #print(data.decode())

#把数据解码 (包含响应头 + 响应体【通过浏览器渲染显示在网页中的内容】)

    data = data.decode()

#取出响应体

    html_data = data.split("\r\n\r\n")[1]

print(html_data)

#关闭客户端链接

    client.close()

if __name__ =="__main__":

get_url("http://www.baidu.com")
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
罗马全面战争怎么样提高元老院评价? 半夜家中镜匾忽然碎了 镜子忽然碎掉怎么解 化能异养型微生物分类 如何判断自养微生物与异养微生物 如何得知某微生物是否为哪种氨基酸的异养型微生物。 滨州市北海振宇电子科技有限责任公司怎么样? 北京振宇科技有限公司怎么样? 上海振宇化工科技有限公司经营范围 商业医保是否值得购买? 蒙古语塔力根土是什么意思 怎样提高下载速度和网络速度 怎么用socket访问http代理服务器,需要账号密码验证 宇宙中的暗物质是否真存在? 怎么提高电脑下载速度 日本为什么是J联赛,而不是甲级/超级联赛﹖ 如果画漫画人物,线条要怎样才能看起来更令人舒服? 最近新闻说美国诬陷中国和一个什么国家有秘密的联... 动漫人物脸上的黑线是什么意思 异星灾变那个塔利小女孩到底是什么 如何使用Socket来模拟HTTP请求与相应 怎么才能让下载速度更快?? 奈非尔塔利存在吗 Http与Socket请求的区别: 这种动漫人物的线条是怎样画出来的呢?,有什么技... 怎样可以提快下载速度 Natalie啥意思 C语言如何利用socket进行HTTP访问 红塔利是种什么木材 linux之socket , URL 访问http服务器 呼和浩特塔利村属于什么乡管辖? 怎么让下载速度变快 日本J1联赛目前积分榜 画动漫人物的时候线条粗细有没有讲究 画动漫人物怎么勾线看不到 线条 怎样提高下载速度 C++ 如何使用 Socket 类向 HTTP 服务器发送数据和... PS做动漫人物怎么沟黑色轮廓线条 python socket支持http吗 电脑下载速度怎么调 中国动漫人物线边(就是勾勒出来的黑边)那么重 下载速度怎么调…? 乳酪可分为多少种? 动漫人物怎么排线? 怎么把电脑下载速度提高 画漫画时,那些在人物周围的线条是用来干嘛的? 怎么提高下载速度啊 奶酪的种类和区别 如何让下载速度加快 如何用一个Socket服务端去接收一个http请求