python抓取网页图片

近来看小说,有很多是以图片形式上传的,单个保存太费时间,参考网上的例子,自己写了个脚本,批量下载

import urllib
import re
import os
def func():
    #正则表达式
    #本实例中的嵌套网址是非标准的,所以在后面进行了处理,
    p=re.compile('(?<=<a href=")\d{8,}.html')
    img=re.compile('(?<=<img src=")http://img.21zw.net/64/64753/\d{4,}/\d{4,}.gif')
    #初始网页,包含多个子网页
    html_src = urllib.urlopen('http://www.21zw.net/book/64/64753/index.html').read()
    m=p.findall(html_src)

    #对所抓取的网页遍历
    for addr in m:
        s='http://www.21zw.net/book/64/64753/'+addr
        subUrl_src=urllib.urlopen(s).read()
        photo=img.findall(subUrl_src)
        #遍历图片
        for pp in photo:
            folder="C://pic"
            pic_name=pp.split('/')[-1]
            if os.path.exists(folder)==False:
                os.makedirs(folder)
            #保存图片
            try:
                url_file=urllib.urlopen(pp)
                f=open(folder+'/'+pic_name,'wb')
                while True:
                    r=url_file.read(1024)
                    if not r:
                        break
                    f.write(r)
                f.close()
            except:
                print "噢,保存图片出现问题。。。"
                print "Unexpected error:"+sys.exc_info()[0]+sys.exc_info()[1]
            else:
                print "保存图片成功。。。"
if __name__=="__main__":
    func()
  

写的不过完整,只是一个记录,其中还有很多地方有待完善。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值