推荐学习书目
› 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
liuxu
V2EX  ›  Python

昨天晚上写了个 Python 程序,下载了一个福利网站 5000 来张妹子图片

  •  3
     
  •   liuxu · Aug 24, 2015 · 20094 views
    This topic created in 4093 days ago, the information mentioned may be changed or developed.
    github:
    https://github.com/liuxu0315/download_nvshen_so

    执行:$ python nvshen_so.py

    用了多线程, 8 条线程,在 /tmp 下生成 nvshen_so/01 等文件夹并下载到相应的目录。
    里面有 2 行代码被注释掉了,它们是配套的,用来下载 2014/12/下的图片,有几百张。

    现在有个问题,我的程序无法一次全部下载完,总是漏一点,要么是执行一段时间后就卡死不动了不知道是什么原因。。
    当然下载图片前有判断是否有该文件,可以重复执行下载程序,不过这个治标没治本。。
    1  2  
    ❮ ❯
    publicID001
    publicID001
    Aug 24, 2015❤️1
    1
    import sqlite
    Aidea
    Aidea
    Aug 24, 2015
    2
    煎蛋妹子吗
    vmebeh
    vmebeh
    Aug 24, 2015❤️1
    3
    看看是卡在哪一步,一般是下载的时候卡了吧,设置超时,等超时了重试;复杂点就是 1L
    Tink
    Tink
    Aug 24, 2015❤️1
    4
    也有可能是防爬虫导致的
    rming
    rming
    Aug 24, 2015
    5
    额 fork 来学习下
    liuxu
    liuxu
    OP
    Aug 24, 2015
    6
    @publicID001
    @vmebeh

    谢谢,我的 /tmp 是 ramdisk ,应该不是硬盘速度问题。。我看看是不是超时的原因
    liuxu
    liuxu
    OP
    Aug 24, 2015
    7
    @Aidea nvshen.so ,女神吧。
    sangmong
    sangmong
    Aug 24, 2015
    8
    我只想问一句:照片呢!!
    liuxu
    liuxu
    OP
    Aug 24, 2015
    9
    @Tink 我多次执行脚本没问题,他们网站用 wordpress 搭建,图片命名还是 1.jpg,2.jpg 这样的,应该没有做防爬虫。
    liuxu
    liuxu
    OP
    Aug 24, 2015
    10
    @sangmong 哈哈,自己用 python 跑
    loading
    loading
    Aug 24, 2015 via Android❤️1
    11
    用 webzip 不就好了~配合 everything ,何必自己写。

    学习除外!
    a308057848
    a308057848
    Aug 24, 2015
    12
    不要老是偷偷地下,我想说下次请带上我
    omph
    omph
    Aug 24, 2015
    13
    好无聊啊,你要说写了个程序能把妹子 P 成 5000 种样子,那就惊世骇俗了
    ifishman
    ifishman
    Aug 24, 2015❤️2
    14
    为什么不先扒图片链接,再根据队列多线程下载,这样不就能把链接分享给我了吗
    niushifan
    niushifan
    Aug 24, 2015
    15
    还以为有照片呢
    liuxu
    liuxu
    OP
    Aug 24, 2015
    16
    @loading
    @a308057848
    学习学习,哈哈
    liuxu
    liuxu
    OP
    Aug 24, 2015
    17
    @omph 处理图片么,倒是用过 pythonmagick 转换过图片。。
    liuxu
    liuxu
    OP
    Aug 24, 2015
    18
    @ifishman 好方法,周末有时间我再写一个
    liuxu
    liuxu
    OP
    Aug 24, 2015
    19
    @niushifan 学习 python 用的,哈哈
    anthonylimhc
    anthonylimhc
    Aug 24, 2015
    20
    WindowsError: [Error 3] The system cannot find the path specified: '/tmp/vnshen_so/'
    我在 win8 上跑,手动创建了 /tmp 文件夹就行了
    leavic
    leavic
    Aug 24, 2015
    21
    这网站的图片 URL 对爬虫太友好了。。。。
    Ouyangan
    Ouyangan
    Aug 24, 2015
    22
    正在看廖雪峰 python3 的教程呢? 看到 generator 那里晕着呢.
    dingyaguang117
    dingyaguang117
    Aug 24, 2015
    23
    指定 timeout 是防卡死必须得呀
    ljbha007
    ljbha007
    Aug 24, 2015
    24
    为啥你们都喜欢看妹子图片 不会越看越饥渴么
    yh7gdiaYW
    yh7gdiaYW
    Aug 24, 2015
    25
    跑了一下,效果拔群
    tt88050643
    tt88050643
    Aug 24, 2015 via Android❤️1
    26
    曾经设置 timeout 也不管用,然后写了个类似看门狗的线程来守护主线程,虽然方法很挫,但是成功下载到了十几万张图片。
    wizardoz
    wizardoz
    Aug 24, 2015❤️1
    27
    少年你需要的是 scrapy
    liuxu
    liuxu
    OP
    Aug 24, 2015
    28
    @anthonylimhc
    我的是 ubuntu,windows 上把程序的 basePath 改成 D:什么的也行
    liuxu
    liuxu
    OP
    Aug 24, 2015
    29
    @wizardoz
    哈哈哈,它叫小刮刮啊,周末我拿了学习学习,感谢
    kepenj
    kepenj
    Aug 24, 2015
    30
    艾玛~ 我以为是颜色网站呢~ 专门还偷偷下了源码去找...
    kenshinhu
    kenshinhu
    Aug 24, 2015
    31
    为了这个,我要学 python
    leorc
    leorc
    Aug 24, 2015
    32
    图呢。。。。
    Dongdong36
    Dongdong36
    Aug 24, 2015
    33
    再贡献两个...咳咳
    https://github.com/sincerefly/Learning/blob/master/py/douban-meizi.py
    这个貌似是哪个 V 友写的,抓取豆瓣妹子的,当时刚接触 py 爬虫就收藏一下

    https://github.com/sincerefly/Learning/blob/master/py/getMeezin.py
    这个是抓取 meez.in 的,遍历 wordpress 文章 id 抓取,索性图片没多少,千张图片不到,直接遍历一遍就可以,哦,对了,这个站是我的,如果只是单纯的想收藏图片的也可以直接向我要就好了......==!
    xpol
    xpol
    Aug 24, 2015
    34
    以前用 ruby 写过一个爬 tusi8 的。好像输出了一个 json 文件,保存已经爬过了的(包括网盘连接和密码)。有想要的不?
    Exin
    Exin
    Aug 24, 2015
    35
    一直不会写超时,导致我的爬虫爬不好的图床时总是卡死……
    freaks
    freaks
    Aug 24, 2015
    36
    @liuxu 为什么运行不起来呢?
    fjgwg
    fjgwg
    Aug 24, 2015❤️10
    37
    楼主你妹的,为什么扒我的站 搞的网站卡的要死
    qq723985066
    qq723985066
    Aug 24, 2015
    38
    @fjgwg 哎呀我擦……不会吧
    kknd22
    kknd22
    Aug 24, 2015❤️1
    39
    容错太少
    失败尝试重试
    python 的 urllib 和 urllib2 模块检测错误能力都很强,但是下载经常出现图片不完整
    我虽不怎么懂 python ,代码也是抄的,但是找到了一个笨办法解决:
    足够的迭代重试,就可以解决下载图片不完整或者空的问题。
    fjgwg
    fjgwg
    Aug 24, 2015❤️1
    40
    要扒你自己一个人扒,现在还把代码发出来 搞的大家都在扒
    zixianlei
    zixianlei
    Aug 24, 2015 via Android
    41
    难道楼上就是站长?哈哈^ω^
    happywowwow
    happywowwow
    Aug 24, 2015
    42
    站长 来了 哈哈哈
    wenbinwu
    wenbinwu
    Aug 24, 2015
    43
    @freaks 你想在 python 里面运行另一个 python ?
    wenbinwu
    wenbinwu
    Aug 24, 2015
    44
    哈哈哈,站长告诉你要 sleep
    chanssl
    chanssl
    Aug 24, 2015 via Android
    45
    哈哈,笑翻了
    Kokororin
    Kokororin
    Aug 24, 2015
    46
    好奇站长是怎么找过来的
    jonnn
    jonnn
    Aug 24, 2015
    47
    站长找上门来了!
    malcolmyu
    malcolmyu
    Aug 24, 2015
    48
    @fjgwg 爬的都访问不了了
    libotony
    libotony
    Aug 24, 2015
    49
    @fjgwg 站长不哭,已经收藏你的站
    wuwuyun
    wuwuyun
    Aug 24, 2015
    50
    hahahaha 站长哭晕在厕所
    idblife
    idblife
    Aug 24, 2015
    51
    擦,我都是人肉爬虫的。。。

    http://qingbuyaohaixiu.com/
    flight2006
    flight2006
    Aug 24, 2015
    52
    想起了我的 1024.py
    idblife
    idblife
    Aug 24, 2015
    53
    @flight2006
    这位大哥口味够重
    话说那么多种图床,好抓吗?
    qinglangee
    qinglangee
    Aug 24, 2015
    54
    把潜水的站长给逼了出来
    ybh37
    ybh37
    Aug 24, 2015
    55
    硬生生的把站长逼出来了啊~
    Andy1999
    Andy1999
    Aug 24, 2015 via iPhone
    56
    看到站长我笑了 哈哈哈哈
    axzy
    axzy
    Aug 24, 2015
    57
    楼主可以把图片打包提供下载吗
    karlxu
    karlxu
    Aug 24, 2015 via iPhone
    58
    @Dongdong36 请教下怎么加代理?
    thinkmore
    thinkmore
    Aug 24, 2015❤️1
    59
    为啥不把链接先趴下来呢
    flight2006
    flight2006
    Aug 24, 2015❤️1
    61
    @idblife 我就抓自拍板块下的图,难度还可以吧,需要随机换浏览器头信息,不然会 403
    freaks
    freaks
    Aug 24, 2015
    62
    @zhanzhang,sorry,I'm sorry , I'm python newbie, only a test
    jiehuangwei
    jiehuangwei
    Aug 24, 2015❤️1
    63
    站长,你们可以一起喝个东西,讨论下合作的可能性
    liuxu
    liuxu
    OP
    Aug 24, 2015 via Android
    64
    @fjgwg 站长哥你来了啊!其实我就是手抖了一下,把代码不小心抖出来了,然后抖上了 github ,又抖到了 V2EX ,真的。。你知道的,单身狗,手抖的厉害,控制不住。。
    liuxu
    liuxu
    OP
    Aug 24, 2015 via Android
    65
    @fjgwg 哥的站我收藏了,给我机油分享,妥妥的
    wezzard
    wezzard
    Aug 24, 2015
    66
    @fjgwg 站长不哭,站起来撸。(我也要扒……逃
    liuxu
    liuxu
    OP
    Aug 24, 2015 via Android
    67
    @axzy 怕站长打我屁屁哈哈哈
    liuxu
    liuxu
    OP
    Aug 24, 2015 via Android
    68
    @thinkmore 第一次写没经验,下一个程序我会注意的
    gulullu
    gulullu
    Aug 24, 2015
    69
    @Dongdong36 求妹纸图片 = =
    lao454490095
    lao454490095
    Aug 24, 2015
    70
    @omph hhh ,你这主意不错
    ltxxgs
    ltxxgs
    Aug 24, 2015
    72
    谁再写一个, ui.cn 的图片,其中 http://img.ui.cn/data/file 为固定地址,后面的地址取图片的后三位分别是文件夹“ 2 ”,文件夹“ 0 ”,文件夹“ 2 ”,最后是文件名称,有 jpg ,也有 png 。
    http://img.ui.cn/data/file/2/0/2/317202.png
    metas
    metas
    Aug 24, 2015
    73
    @fjgwg 你为何如此叼,都找上门来了
    coderkiss
    coderkiss
    Aug 24, 2015
    74
    @idblife 你的站点质量高 :D
    fjgwg
    fjgwg
    Aug 24, 2015
    75
    得不到的拼命想得到,正当你得到时其实并没有想象中的那么好。


    一切都是浮云。。
    cbsw
    cbsw
    Aug 24, 2015
    76
    你们这帮禽兽,我都还来不及看看网站里都有什么样的妹子,就被你们玩成 502 了
    ether
    ether
    Aug 24, 2015
    77
    警察叔叔就是这个人!
    shenxian
    shenxian
    Aug 25, 2015
    78
    233 站长好拼 笑死我了
    smallsix
    smallsix
    Aug 25, 2015
    79
    @wizardoz 我擦,是你吗?
    smallsix
    smallsix
    Aug 25, 2015
    80
    @ltxxgs 把地址改下就好了
    billwang
    billwang
    Aug 25, 2015
    81
    站长还是打个包在 v2 上发个福利吧,不然大家还得分头跑,多浪费时间呀。哈哈
    hdbean
    hdbean
    Aug 25, 2015
    82
    t6 的图的可以爬吗?
    wizardoz
    wizardoz
    Aug 25, 2015
    83
    @smallsix 是谁?
    kknd22
    kknd22
    Aug 25, 2015
    84
    其实我也不懂 python
    顺道求楼主,多线程教程
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Aug 25, 2015 via iPhone
    85
    为了这个默默抄起荒废多年的 Python
    liushuaikobe
    liushuaikobe
    Aug 25, 2015
    87
    这种东西果断 gevent 啊!眨眼间就可以判断出来被扒的站有没有做放扒策略!
    Alex77Lee
    Alex77Lee
    Aug 25, 2015
    89
    我只是把被抓的网站拿走了。
    kknd22
    kknd22
    Aug 25, 2015
    90
    @liuxu

    Re:88 楼
    windows 狗表示默默撸过
    Re:86 楼
    并非干这行业,之前想要多线程,无非是想爬这个站 http://www.nongji360.com/e-book/
    后来脚本也写好了,无奈发现重心反倒放到了写脚本上边
    也曾想过添加多线程,失败告终。
    发出当时写的脚本来,仅做参考,而且考虑再三,也不大想加多线程了,当初我自己爬,都把他服务器爬死好几天。。。
    https://github.com/kknd222/test
    代码不咋地,但是希望能给你点提示,需要两个包
    1 ) reportlab-3.0.win32-py2.7.exe
    2 ) PIL-1.1.7.win32-py2.7.exe
    brotherlegend
    brotherlegend
    Aug 25, 2015
    91
    站长表示 很气愤,净浪费带宽。哈哈。
    smallsix
    smallsix
    Aug 25, 2015
    92
    @wizardoz 你头像和我认识的一个朋友头像一样的,以为是同一个人呢
    Aresyz
    Aresyz
    Aug 25, 2015
    93
    lz 和我去年神相似,当时边爬边写到文件夹, 5000+妹子图,用的 node ,来,握个爪!
    Ouyangan
    Ouyangan
    Aug 25, 2015
    94

    66666
    shulen
    shulen
    Aug 25, 2015
    95
    不开个网站,给大伙发个中秋福利啥的?
    liuxu
    liuxu
    OP
    Aug 25, 2015
    96
    @Aresyz 握抓~
    aalska
    aalska
    Aug 25, 2015
    97
    File "./nvshen_so.py", line 4
    <!DOCTYPE html>
    ^
    SyntaxError: invalid syntax

    是啥问题 对 python 完全陌生
    Ixizi
    Ixizi
    Aug 25, 2015
    98
    哈哈哈哈~~~~ 求学习资料!!! 表示很感兴趣
    liuxu
    liuxu
    OP
    Aug 25, 2015 via Android
    99
    @aalska 你做了什么,是不是改了代码
    liuxu
    liuxu
    OP
    Aug 25, 2015 via Android
    100
    @Ixizi 欲望是最好的老师哈哈哈
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1863 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 287ms · UTC 07:07 · PVG 15:07 · LAX 23:07 · JFK 02:07
    ♥ Do have faith in what you're doing.