通过限制字节读取网站的一部分

Read part of a website by limiting bytes

我正在尝试阅读几个网站,获取我需要的信息,然后继续。尽管 python 代码挂在某些网站上。我注意到在真实的浏览器中,网站有时无法完全加载,可能是在等待加载某些广告...?

我需要的信息在网站的前50kb以内。如果我使用超时,来自连接的整个响应在我尝试过的所有模块(urllib、urlib3 和 pycurl)中都会丢失。此外,在 pycurl 中,设置选项 RANGE 似乎对 url 没有任何作用。

有谁知道调用超时时如何保存已经收到的内容。或者,有人知道如何有效地将内容限制在一定的字节数吗?

我发现pycurl 仍然会写入缓冲区直到超时。如果发生超时,则可以捕获错误并检索缓冲区。这是我使用的代码。

    try:
        buffer = BytesIO()
        http_curl = pycurl.Curl()
        http_curl.setopt(pycurl.URL, url)
        http_curl.setopt(http_curl.WRITEDATA, buffer)
        http_curl.setopt(http_curl.FOLLOWLOCATION, True)
        http_curl.setopt(http_curl.TIMEOUT_MS, 1000)
        http_curl.perform()
        http_curl.close()
    except pycurl.error:
        response = buffer.getvalue()
        response = response.decode('utf-8')
        print(response)
        pass

页面已部分下载,然后打印。 感谢 t.m.adam 激发了解决方法。