我正在尝试使用python的requests模块从Web下载并保存图像.
这是我使用的(工作)代码:
img = urllib2.urlopen(settings.STATICMAP_URL.format(**data))
with open(path, 'w') as f:
    f.write(img.read())
以下是使用以下内容的新(非工作)代码requests:
r = requests.get(settings.STATICMAP_URL.format(**data))
if r.status_code == 200:
    img = r.raw.read()
    with open(path, 'w') as f:
        f.write(img)
你能帮助我从响应中使用什么属性requests吗?
我正在寻找一个用于Python的HTML Parser模块,它可以帮助我以Python列表/字典/对象的形式获取标签.
如果我有一份表格的文件:
<html>
<head>Heading</head>
<body attr1='val1'>
    <div class='container'>
        <div id='class'>Something here</div>
        <div>Something else</div>
    </div>
</body>
</html>
然后它应该给我一种方法来通过HTML标签的名称或ID访问嵌套标签,这样我基本上可以让它给我div标签中class='container'包含的body标签中的内容/文本,或类似的东西.
如果您使用过Firefox的"Inspect element"功能(查看HTML),您就会知道它以一种漂亮的嵌套方式为您提供所有标记,就像树一样.
我更喜欢内置模块,但可能会有点太多.
我在Stack Overflow和互联网上的一些博客上经历了很多问题,其中大多数都建议使用BeautifulSoup或lxml或HTMLParser,但其中很少有人详细介绍了这些功能,最后只是讨论哪一个更快/更有效.
我是Python的新手,我一直在浏览本网站上的问答,以回答我的问题.但是,我是初学者,我发现很难理解一些解决方案.我需要一个非常基本的解决方案
有人可以向我解释一个简单的解决方案:"通过http下载文件"和"将其保存到Windows中的磁盘"吗?
我也不确定如何使用shutil和os模块.
我想下载的文件不到500 MB,是一个.gz存档文件.如果有人可以解释如何提取存档并利用其中的文件,那就太棒了!
这是一个部分解决方案,我从各种答案中总结出来:
import requests
import os
import shutil
global dump
def download_file():
    global dump
    url = "http://randomsite.com/file.gz"
    file = requests.get(url, stream=True)
    dump = file.raw
def save_file():
    global dump
    location = os.path.abspath("D:\folder\file.gz")
    with open("file.gz", 'wb') as location:
        shutil.copyfileobj(dump, location)
    del dump
有人可以指出错误(初学者级别)并解释任何更简单的方法来做到这一点?
谢谢!
curl有一个选项可以直接在磁盘上保存文件和标题数据:
curl_setopt($curl_obj, CURLOPT_WRITEHEADER, $header_handle);
curl_setopt($curl_obj, CURLOPT_FILE, $file_handle);
python请求中是否有相同的能力?