美文网首页超级程序猿
python如何解析HTTP返回的标准数据包

python如何解析HTTP返回的标准数据包

作者: 邵佳楠 | 来源:发表于2019-07-12 10:58 被阅读0次

该篇内容由个人博客点击跳转同步更新!转载请注明出处!

前言

最近有一个需求需要频繁调用xx接口,但这个接口调用次数一多就会给你禁掉,而且一禁就是禁一天的那种,只能通过界面模拟用户操作抓取数据包,然后单独对这些数据包进行处理

具体步骤

首先看下需要格式化的数据包长什么样

数据包
这就是完整的一个数据包,网上基本都是格式化json数据包的,但返回的内容中还包含了头信息等所以不能简单的通过json来格式化,另外头信息中可能还有需要用到的信息内容,不能通过正则直接把头信息给删除只保留下面body中的内容。
我们在这里主要用到了http.client库中的HTTPResponse方法来解析数据包内容,具体代码如下:
import os
from http.client import HTTPResponse
from io import BytesIO

#传给HTTPResponse一个模拟的makefile方法
class FakeSocket():
    def __init__(self, response_stream):
        self._file = BytesIO(response_stream)
    def makefile(self, *args, **kwargs):
        return self._file

#根据路径遍历出所有数据包文件,并返回对应的文件地址
def all_path(dirname):
    result = []#所有的文件

    for maindir, subdir, file_name_list in os.walk(dirname):
        for filename in file_name_list:
            apath = os.path.join(maindir, filename)#合并成一个完整路径
            result.append(apath)

    return result

#获取所有需要处理的文件
allfilespath=all_path("F:\\Temp\\线路结果")
for path in allfilespath:    
    try:
        #HTTPResponse内部使用了iso-8859-1解码,所以这里也要写
        with open(path,'r',encoding="iso-8859-1") as fo:
            #获取文件内容
            con=fo.read()
            #HTTPResponse内部使用了iso-8859-1解码,所以这里也要写
            source=FakeSocket(con.encode("iso-8859-1"))
            response = HTTPResponse(source)
            response.begin()
            #获取body主体中的内容
            result=response.read()
            pass
    except Exception as identifier:
        pass

这样解析就完成了,想要获取头信息的话可以调用response的对应方法进行获取

微信关注我哦!(转载注明出处) 关注我哦

相关文章

  • python如何解析HTTP返回的标准数据包

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 最近有一个需求需要频繁调用xx接口,但这个接口调用次数...

  • 网络

    Http: 请求步骤 地址解析: 解析出协议名,主机名, 端口,对象路径等. 封装Http请求数据包 封装成TCP...

  • python解析pcap文件中的http数据包

    使用scapy、scapy_http就可以方便的对pcap包中的http数据包进行解析 scapy_http可以在...

  • https

    HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层...

  • JMeter脚本开发之BadBoy环境搭建和录制

    JMeter录制 JMeter自身提供了http代理方式进行录制,原理是解析网络数据包,按Http协议包装秤Htt...

  • iOS对HTTPS证书链的验证

    本文由我们团队的美女 超哥 分享 HTTPS从最终的数据解析的角度,与HTTP相同。HTTPS将HTTP协议数据包...

  • iOS安全系列之一:HTTPS

    HTTPS其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到S...

  • iOS app安全

    HTTPS其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到S...

  • iOS对HTTPS证书链的验证

    HTTPS从最终的数据解析的角度,与HTTP相同。HTTPS将HTTP协议数据包放到SSL/TSL层加密后,在TC...

  • 65.利用Linux scapy伪造数据包攻击

    scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送、嗅探、解析和伪造网络数据包,常常被用到...

网友评论

    本文标题:python如何解析HTTP返回的标准数据包

    本文链接:https://www.haomeiwen.com/subject/duxekctx.html