该篇内容由个人博客点击跳转同步更新!转载请注明出处!
前言
最近有一个需求需要频繁调用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