抓取MM图片的爬虫

刚学python,试着写了个非常简单的爬虫,爬一些MM的图片下来。记录一下

#coding=utf-8
import urllib,time
import re
global x
x=0
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getImg(html):
    global x
    reg = r'original=\'(.+?.jpg)\' width' 
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    local = r'D:\pic' '\\' '%s.jpg' #注意表示方法,用字符串合并方法表示,不然最后一个\不好弄
    i=0
    for imgurl in imglist:
        i+=1
        print 'Downloading---',i
        urllib.urlretrieve(imgurl,local % x)
        x+=1
    print i
print u"""
----------------------------
    程序:图片爬虫
    作者:hinet
    版本:v 1.0
    日期:2014-8-11
    语言:Python 2.7
    文件:D:/pic
----------------------------
"""
for i in range(1,50):
    url = "http://www.baozhao.me/p/%d.html" % i
    html = getHtml(url)
    print getImg(html)

记录几个小问题:

  1.文件保存到D:\pic\ 下,开始怎么都表现不出来最后那个\,最后使用了代码中的这个方法,合并了两个字符串才形成这个文件夹路径,以后再想更好的办法。当然前面加上r设置为原始字符串也是为了防止文件名出现问题,比如说 local = 'D:\npic' 这就出问题了,print local 就会直接把\n当成换行了。

 local = r'D:\pic' '\\' '%s.jpg'

  2.re.findall函数返回一个list,使用urlretrieve进行循环下载,文件名用0,1,2,3……jpg。

这个版本还有缺陷,后期应该引入线程,还得解决图片链接问题,让抓取更有效率。

转载于:https://www.cnblogs.com/hi-net/p/3907759.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值