你怎么读个别的cUrl块?

时间:2012-01-18 11:57:43

标签: python ruby bash curl

有没有办法从网址下载并保存每个单块,因为它从服务器返回到单独的文件进行分析?

当我认为服务器正在砍掉json输出的结尾时,我遇到了问题,但我们收到回复的公司却说“不是不是”

当我们在终端上卷曲时,它会停在我认为是块的位置并且按下Enter键返回更多数据,这绝对是一块?

否则我想找到一个将每个块保存到文件的脚本。

2 个答案:

答案 0 :(得分:2)

我不知道如何让curl做你想做的事(我甚至认为不可能使用BSD套接字API),但我想我可以帮你调试你的问题。

我认为你想要的是像Wireshark这样的数据包嗅探器,它允许你检查数据包内容,并确切地看到“在线上”发生了什么。

答案 1 :(得分:1)

基于docs for pycurl.Curl() object

的示例
#!/usr/bin/env python
import sys
from contextlib import closing as C

import pycurl

class Writer:
   def __init__(self, file):
       self.file = file

   def write(self, data):
       sys.stderr.write(data)
       self.file.write(data)

   def close(self):
       self.file.close()

url = 'http://stackoverflow.com/questions/8909710/'
with C(pycurl.Curl()) as c, C(Writer(open('output','wb'))) as w:
    c.setopt(c.URL, url)
    c.setopt(c.WRITEFUNCTION, w.write)
    c.setopt(c.FOLLOWLOCATION, True)
    c.perform()
    print >>sys.stderr, c.getinfo(c.HTTP_CODE), c.getinfo(c.EFFECTIVE_URL)