urllib2不止一次读取响应

时间:2018-05-14 15:07:20

标签: python urllib2

我正在尝试修改SQLmap连接类(https://github.com/sqlmapproject/sqlmap/blob/master/lib/request/connect.py)以满足我的需求。

我想要做的是检查回复是否包含“CAUGHT BY WAF”并重复该请求,直到它不包含它为止。

因此,在第471行之后,我补充道:

conn = urllib2.urlopen(req)
while('CAUGHT BY WAF' in conn.read()):
   conn = urllib2.urlopen(req)

但是这不起作用,因为在执行conn.read()之后,SQLmap将无法再次读取响应,因为您只能执行一次。

P.S:我试图使用深度镜:

conn = urllib2.urlopen(req)
conn2 = copy.deepcopy(conn)
while('CAUGHT BY WAF' in conn2.read()):
   conn = urllib2.urlopen(req)
   conn2 = conn

但仍然无效(不明白为什么!!)

所以我的问题是:我怎样才能不止一次conn.read()

谢谢!

1 个答案:

答案 0 :(得分:1)

调用正在向您发送一个流,因此如果您想多次使用该数据,可以将其保存在临时文件中,然后从那里解析它。

content = conn.read()
file.write(content)