图片爬到后存储文件,windows下,打开图片失败

来源:4-2 python正则表达式练习

慕粉1625345616

2018-01-21 19:37

req = urllib2.urlopen('https://www.imooc.com/')   #抓取网页
buf = req.read()   #返回一个str
listurl = re.findall(r'//.+\.jpg',buf)   #利用

print listurl
i = 0
for url in listurl:
   f = open(str(i)+'.jpg','w')
   url1 = 'http:'+url   #因为没有http开头,报错,所以我每个元素手动添加了
   req = urllib2.urlopen(url1)    #遍历打开网址
   bug = req.read()
   f.write(buf)
   i += 1
   if i == 10:
       break
   f.close()

在windows下,打开图片提示图片出错,求解答??

谢谢大家了!!!


写回答 关注

4回答

  • 萤火虫之夏
    2019-05-06 17:54:25

    buf = req.read().decode("utf-8") 没写decode图片出来一半或是错的图片,加了就正确了,谢谢

  • 华灯初上丶
    2018-01-27 22:13:21


    import re

    import urllib


    req = urllib.request.urlopen('http://www.imooc.com/course/list')

    #此处加上decode(),不然拿下来的数据都是乱码

    buf = req.read().decode("utf-8")


    #老师讲课的url地址已经发生改变,改一下正则匹配就好

    # listurl = re.findall(r'src=.+\.jpg', buf)

    listurl = re.findall(r'//img.+?\.jpg', buf)

    # 改成非贪婪模式就行了



    #前面没有了http:,那么这里手动加上

    for index,app_id in enumerate(listurl):

        listurl[index] = str(app_id).replace('//', 'http://')

        print(index, listurl[index])

    print(listurl)



    i = 0

    for url in listurl:

        #写入模式修改为“wb+”,不然不支持将bytes写入,亲测

        f = open(str(i)+".jpg", "wb+")

        req = urllib.request.urlopen(url)

        buf = req.read()

        f.write(buf)

        i+=1


    qq_雙子_... 回复陈ff

    多谢你的经验

    2018-11-27 20:54:16

    共 2 条回复 >

  • 华灯初上丶
    2018-01-27 22:12:19

    我用的pycharm,今天才手写的代码,改了几个小地方,楼主看看注意到没有,谢谢。

    re
    urllib
    
    req = urllib.request.urlopen()
    buf = req.read().decode()
    
    listurl = re.findall(buf)
    indexapp_id (listurl):
        listurl[index] = (app_id).replace()
        (indexlisturl[index])
    (listurl)
    
    
    i = url listurl:
        f = ((i)+)
        req = urllib.request.urlopen(url)
        buf = req.read()
        f.write(buf)
        i+=


  • qq_海盗船长_1
    2018-01-21 20:37:33

    重新爬去


python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题