【问题标题】:Images are Downloading as Blank with No size图像下载为空白,没有大小
【发布时间】:2021-03-20 06:44:47
【问题描述】:

嗨,所以我已经成功地抓取了素描者网站,并获得了所有图片链接,但是当我下载它们时,它们中的大多数下载为空白。任何帮助请:)

我的代码:

import pandas as pd
import requests

Finalv1 = pd.read_excel("Boots1.xlsx")
Finalv1.index+=1

a = Finalv1.index.tolist()
Name = Finalv1["Title"].tolist()
Images = Finalv1["Images"].tolist()

s = requests.Session()

for i,n,l in zip(a,Name,Images):
    r = s.get(l).content
    with open ("Images//" + f"{i}-{n}.jpg","wb") as f:
        f.write(r)

我的输出:output

我的 excel 文件供参考(Google Drive 链接):Excel File

【问题讨论】:

    标签: python python-3.x image beautifulsoup error-handling


    【解决方案1】:

    一个潜在的解决方法是使用请求内容来添加适当的文件扩展名。

    方法如下:

    import pandas as pd
    import requests
    
    them_boots = pd.read_csv("boots.csv")
    them_names = them_boots["Title"].to_list()
    them_links = them_boots["Images"].to_list()
    
    with requests.Session() as connection:
        for boot in zip(them_names, them_links):
            name, image_source = boot
            content = connection.get(image_source)
            extension = content.headers["Content-Type"].split("/")[-1]
            print(f"Walk a mile in {name}")
            with open(
                    f"{'_'.join(name.split()).replace(':', '')}.{extension}",
                    "wb",
            ) as image:
                image.write(content.content)
    

    输出:

    或者更详细的方式:

    Alley_Cats_-_Talgen.jpeg -> 15.3 KB
    Cascades.jpeg -> 17.6 KB
    Cascades_-_Talsen.jpeg -> 15.4 KB
    Ithaca_-_Beaufort.jpeg -> 17.2 KB
    Ithaca_-_Stowe.jpeg -> 15.5 KB
    Ithaca_-_Swiftwater.jpeg -> 18.7 KB
    Ithaca_-_York.jpeg -> 13.1 KB
    Mariners.jpeg -> 18.3 KB
    Mariners_-_Pilot.jpeg -> 11.4 KB
    Parallux_-_Ando.jpeg -> 15.9 KB
    Relaxed_Fit:_Folsten_-_Doramo.jpeg -> 17.8 KB
    Relaxed_Fit:_Marcelo_-_Topel.jpeg -> 20 KB
    Relaxed_Fit:_Molton_-_Gaveno.jpeg -> 12.1 KB
    Relaxed_Fit:_Polano_-_Norwood.jpeg -> 19.1 KB
    Relaxed_Fit:_Relment_-_Pelmo.jpeg -> 21.2 KB
    Relaxed_Fit:_Relment_-_Traven.jpeg -> 19.3 KB
    Relaxed_Fit:_Riglen_-_Lofield.jpeg -> 17.4 KB
    Relaxed_Fit:_Segment_-_Ander.jpeg -> 18 KB
    Relaxed_Fit:_Segment_-_Garnet.jpeg -> 13.4 KB
    Relaxed_Fit:_Selmen_-_Relodge.jpeg -> 21.5 KB
    Relaxed_Fit:_Sole_Trek_-_Mayock.jpeg -> 17.5 KB
    Relaxed_Fit:_Trekson_-_Gleason.jpeg -> 22.3 KB
    Relaxed_Fit:_Trekson_-_Grapel.jpeg -> 18.3 KB
    Revine_-_Hopkin.jpeg -> 14.9 KB
    Skechers_Arch_Fit_Phantom_-_Illusive.jpeg -> 17.7 KB
    Verdict.jpeg -> 18.1 KB
    Work:_Argum_-_Alkova_ST_WP.jpeg -> 18.5 KB
    Work:_Argum_ST_WP.jpeg -> 16.2 KB
    Work:_Blais_-_Bixford_ST.jpeg -> 22.5 KB
    Work:_Burgin_-_Tarlac_ST.jpeg -> 21.2 KB
    Work:_Delleker_-_Lakehead_ST.jpeg -> 19.7 KB
    Work:_Moltke_WP.jpeg -> 10.7 KB
    Work:_Monter_Comp_Toe.jpeg -> 20.6 KB
    Work:_Pettus_-_Lebaum.jpeg -> 19 KB
    Work:_Queznell_ST_WP.jpeg -> 21.3 KB
    Work:_Relaxed_Fit_-_Workshire_ST.jpeg -> 13.5 KB
    Work:_Robards_SR.jpeg -> 17.8 KB
    Work:_Tapter_-_Gorle_ST.jpeg -> 14.1 KB
    Work:_Trevok_ST_WP.jpeg -> 13.8 KB
    Work:_Trophus_-_Letic_ST.jpeg -> 16.9 KB
    Work:_Vicksburk_-_Fetor_ST.jpeg -> 15.3 KB
    Work:_Vinten_-_Courtenay_WP_SR.jpeg -> 21.2 KB
    Work:_Weirton_WP.jpeg -> 9.7 KB
    Work_Relaxed_Fit:_Braly_Tactical.jpeg -> 16.1 KB
    Work_Relaxed_Fit:_Burgin_-_Sosder_Comp_Toe.jpeg -> 21.8 KB
    Work_Relaxed_Fit:_Holdredge_-_Rebem_ST.jpeg -> 20.9 KB
    Work_Relaxed_Fit:_Kadmiel.jpeg -> 16.5 KB
    Work_Relaxed_Fit:_Markan_Tactical.jpeg -> 16.3 KB
    Work_Relaxed_Fit:_Pettus.jpeg -> 22.8 KB
    Work_Relaxed_Fit:_Vicksburk_ST.jpeg -> 14.7 KB
    Work_Relaxed_Fit:_Wascana_-_Athas_Tactical.jpeg -> 13.2 KB
    Work_Relaxed_Fit:_Wascana_-_Benen_WP_Tactical.jpeg -> 17.1 KB
    Work_Relaxed_Fit:_Wascana_-_Millit_WP.jpeg -> 18.2 KB
    Work_Relaxed_Fit:_Workshire_-_Condor.jpeg -> 14 KB
    Downloaded 54 files with total size of 930.6 KB
    

    【讨论】:

    • 嗨,我试过你的方法,下载了 16 张图片,但其中 3 张是 0 字节或没有图片 :(
    • 我无法重现。该代码下载了所有 54 个文件,其中 none 的大小为 0 字节。查看更新后的答案。
    • 嗨,所以我终于通过在excel中删除文件名中的冒号来解决它。它没有显示任何错误,所以我认为冒号是允许的,但事实证明它们弄乱了 Windows 中的文件。 :)
    • 这是一个专业提示 - 不要使用 Windows。
    • 哈哈哈。将来也会升级到更好的机器。谢谢你的帮助顺便说一句:)
    【解决方案2】:

    嗨,所以我终于通过在excel中删除文件名中的冒号来解决它。它没有显示任何错误,所以我认为冒号是允许的,但事实证明它们弄乱了 Windows 中的文件。 :)

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多