V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
rigi
V2EX  ›  Python

百思不得其解,请教一个豆瓣相册的爬虫问题

  •  
  •   rigi · 2015-05-28 20:40:11 +08:00 · 3381 次点击
    这是一个创建于 3492 天前的主题,其中的信息可能已经有所发展或是发生改变。
    诸位大牛 我刚刚学python遇到个百思不得其解的问题,我想爬豆瓣的一些图片,并下载到e:/tu 目录中,用的 re, urllib 两个库,程序我认真检查就是不知道问题出在哪, 太毁信心了,能否帮我看下?拜谢!

    ps: 程序能够打印出所有图片的地址,问题应是在下载那,我应该如何修改呢?


    #coding = utf-8

    import re

    import urllib

    orin_html= urllib.urlopen("http://www.douban.com/photos/album/138010643/?start=0").read()

    imgreg = re.compile(r'img.\..*jpg')

    imglist = re.findall(imgreg,orin_html)

    '''
    需要说明的是,一直到这里都没有问题, 能够打印每张图片的链接
    '''

    x = 0
    for i in imglist:
    urllib.urlretrieve(i,'e:/tu/%s.jpg' % x)
    x = x + 1
    14 条回复    2015-05-29 13:59:52 +08:00
    rigi
        1
    rigi  
    OP
       2015-05-28 20:44:56 +08:00
    有没有可能是豆瓣不能用urllib.urlretrieve 直接爬取下载?
    kslr
        2
    kslr  
       2015-05-28 20:56:13 +08:00 via Android
    你这里面没有存到本地的代码啊 ( 代码搜下就知道
    fy
        3
    fy  
       2015-05-28 20:59:54 +08:00
    直接上 requests,管他urllib1 urllib2 urllib3的
    kslr
        4
    kslr  
       2015-05-28 21:00:13 +08:00 via Android   ❤️ 1
    擦 没看清楚 明天上班回答你
    fy
        5
    fy  
       2015-05-28 21:01:17 +08:00   ❤️ 1
    拿到链接以后

    f = save('xxx.jpg', 'wb')
    f.write(requests.get(url).content)
    f.close()
    fzinfz
        6
    fzinfz  
       2015-05-28 21:02:59 +08:00   ❤️ 1
    imgreg = re.compile(r'http://img.\..*jpg')
    试下
    下次记得把错误贴出。。。
    gongpeione
        7
    gongpeione  
       2015-05-28 21:10:20 +08:00   ❤️ 1
    试了下没啥问题的样子 0 0 错误提示是什么?
    hooluupog
        8
    hooluupog  
       2015-05-29 00:20:59 +08:00   ❤️ 1
    这样改了下,可以了:
    urllib.urlretrieve('http://'+i,'d:/tu/%s.jpg' % x)
    rigi
        9
    rigi  
    OP
       2015-05-29 07:50:15 +08:00
    @hooluupog 谢谢大牛, 找来找去,原来原因处在没加'http://'上。。跪了, 在浏览器中不加'http://'也能打开图片,跑程序就不行了
    rigi
        10
    rigi  
    OP
       2015-05-29 07:50:56 +08:00
    拜谢楼上各位!
    decken
        11
    decken  
       2015-05-29 08:21:33 +08:00 via Android
    @rigi 浏览器帮你自动加了
    rigi
        12
    rigi  
    OP
       2015-05-29 08:37:24 +08:00
    @decken 是的 后来经过提醒才知道
    mozartgho
        13
    mozartgho  
       2015-05-29 09:25:12 +08:00
    @rigi 求分享下爬豆瓣相册的代码啊
    rigi
        14
    rigi  
    OP
       2015-05-29 13:59:52 +08:00
    @mozartgho 都在上面啊 ,看8楼的回复。改完之后就可以下了。这段代码优化的地方太多了,我水平太菜了,刚刚学而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3133 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:15 · PVG 21:15 · LAX 05:15 · JFK 08:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.