注册 登录
编程论坛 Python论坛

【求助帖】网页下载图片并保存

小小军 发布于 2020-08-29 10:36, 1699 次点击
程序代码:
import urllib.request
import re
import os

def open_url(url):     
    req = urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0")
    page = urllib.request.urlopen(req)
    html = page.read().decode("utf-8")
    return html   

def get_img(html):
    p = (r'<img src="(http[^_]*//i0\dpiccdn.*)" data-img="" style="height:214.1px;width:[^a-z]*px;".*">')
    imglist = re.findall(p,html)
   
    try:
        os.mkdir("蔡徐坤")
    except FileExistsError:
            pass
    os.chdir("蔡徐坤")

    for each in imglist:
        filename = each.spilt("//")[1]
        with open (filename,"wb") as f:
            f.write(each)

       # urllib.request.urlretrieve(each,filename,None)
        
if __name__ == "__main__":
    url = "https://pic. get_img(open_url(url))
   

能够运行没有报错,但是生成的文件夹中没有下载的图片,请问这是哪里有错误吗?

[此贴子已经被作者于2020-8-29 10:37编辑过]

2 回复
#2
fall_bernana2020-08-31 10:12
以下是引用小小军在2020-8-29 10:36:44的发言:

import urllib.request
import re
import os

def open_url(url):     
    req = urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0")
    page = urllib.request.urlopen(req)
    html = page.read().decode("utf-8")
    return html   

def get_img(html):
    p = (r'<img src="(http[^_]*//i0\dpiccdn.*)" data-img="" style="height:214.1px;width:[^a-z]*px;".*">')
    imglist = re.findall(p,html)
   
    try:
        os.mkdir("蔡徐坤")
    except FileExistsError:
            pass
    os.chdir("蔡徐坤")

    for each in imglist:
        filename = each.spilt("//")[1]
        with open (filename,"wb") as f:
            f.write(each)

       # urllib.request.urlretrieve(each,filename,None)
        
if __name__ == "__main__":
    url = "https://pic.
    get_img(open_url(url))
   

能够运行没有报错,但是生成的文件夹中没有下载的图片,请问这是哪里有错误吗?






虽然没有报错。但是你需要打印下你正则匹配的内容。可能你什么也没有匹配到。然后你这个f.write是个啥?把文本内容写进去?
#3
炸天帮2020-08-31 11:18
图片是二进制应该用content
1