昨天晚上写了个 Python 程序,下载了一个福利网站 5000 来张妹子图片 - V2EX
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
liuxu
V2EX    Python

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

  •  3
     
  •   liuxu 2015-08-24 09:48:39 +08:00 18123 次点击
    这是一个创建于 3701 天前的主题,其中的信息可能已经有所发展或是发生改变。
    github:
    https://github.com/liuxu0315/download_nvshen_so

    执行:$ python nvshen_so.py

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

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

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

    学习除外!
    a308057848
        12
    a308057848  
       2015-08-24 10:46:18 +08:00
    不要老是偷偷地下,我想说下次请带上我
    omph
        13
    omph  
       2015-08-24 10:49:14 +08:00
    好无聊啊,你要说写了个程序能把妹子 P 成 5000 种样子,那就惊世骇俗了
    ifishman
        14
    ifishman  
       2015-08-24 10:56:41 +08:00   2
    为什么不先扒图片链接,再根据队列多线程下载,这样不就能把链接分享给我了吗
    niushifan
        15
    niushifan  
       2015-08-24 11:00:32 +08:00
    还以为有照片呢
    liuxu
        16
    liuxu  
    OP
       2015-08-24 11:02:08 +08:00
    @loading
    @a308057848
    学习学习,哈哈
    liuxu
        17
    liuxu  
    OP
       2015-08-24 11:03:07 +08:00
    @omph 处理图片么,倒是用过 pythonmagick 转换过图片。。
    liuxu
        18
    liuxu  
    OP
       2015-08-24 11:03:30 +08:00
    @ifishman 好方法,周末有时间我再写一个
    liuxu
        19
    liuxu  
    OP
       2015-08-24 11:04:19 +08:00
    @niushifan 学习 python 用的,哈哈
    anthonylimhc
        20
    anthonylimhc  
       2015-08-24 11:09:34 +08:00
    WindowsError: [Error 3] The system cannot find the path specified: '/tmp/vnshen_so/'
    我在 win8 上跑,手动创建了 /tmp 文件夹就行了
    leavic
        21
    leavic  
       2015-08-24 11:35:13 +08:00
    这网站的图片 URL 对爬虫太友好了。。。。
    Ouyangan
        22
    Ouyangan  
       2015-08-24 11:36:42 +08:00
    正在看廖雪峰 python3 的教程呢? 看到 generator 那里晕着呢.
    dingyaguang117
        23
    dingyaguang117  
       2015-08-24 11:37:47 +08:00
    指定 timeout 是防卡死必须得呀
    ljbha007
        24
    ljbha007  
       2015-08-24 11:43:06 +08:00
    为啥你们都喜欢看妹子图片 不会越看越饥渴么
    yh7gdiaYW
        25
    yh7gdiaYW  
       2015-08-24 11:51:25 +08:00
    跑了一下,效果拔群
    tt88050643
        26
    tt88050643  
       2015-08-24 12:29:52 +08:00 via Android   1
    曾经设置 timeout 也不管用,然后写了个类似看门狗的线程来守护主线程,虽然方法很挫,但是成功下载到了十几万张图片。
    wizardoz
        27
    wizardoz  
       2015-08-24 12:50:54 +08:00   1
    少年你需要的是 scrapy
    liuxu
        28
    liuxu  
    OP
       2015-08-24 13:08:49 +08:00
    @anthonylimhc
    我的是 ubuntu,windows 上把程序的 basePath 改成 D:什么的也行
    liuxu
        29
    liuxu  
    OP
       2015-08-24 13:10:22 +08:00
    @wizardoz
    哈哈哈,它叫小刮刮啊,周末我拿了学习学习,感谢
    kepenj
        30
    kepenj  
       2015-08-24 13:43:08 +08:00
    艾玛~ 我以为是颜色网站呢~ 专门还偷偷下了源码去找...
    kenshinhu
        31
    kenshinhu  
       2015-08-24 14:03:21 +08:00
    为了这个,我要学 python
    leorc
        32
    leorc  
       2015-08-24 14:05:32 +08:00
    图呢。。。。
    Dongdong36
        33
    Dongdong36  
       2015-08-24 14:08:30 +08:00
    再贡献两个...咳咳
    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
        34
    xpol  
       2015-08-24 14:14:52 +08:00
    以前用 ruby 写过一个爬 tusi8 的。好像输出了一个 json 文件,保存已经爬过了的(包括网盘连接和密码)。有想要的不?
    Exin
        35
    Exin  
       2015-08-24 14:26:25 +08:00
    一直不会写超时,导致我的爬虫爬不好的图床时总是卡死……
    freaks
        36
    freaks  
       2015-08-24 14:33:11 +08:00
    @liuxu 为什么运行不起来呢?
    fjgwg
        37
    fjgwg  
       2015-08-24 14:42:45 +08:00   10
    楼主你妹的,为什么扒我的站 搞的网站卡的要死
    qq723985066
        38
    qq723985066  
       2015-08-24 14:48:28 +08:00
    @fjgwg 哎呀我擦……不会吧
    kknd22
        39
    kknd22  
       2015-08-24 14:50:39 +08:00   1
    容错太少
    失败尝试重试
    python 的 urllib 和 urllib2 模块检测错误能力都很强,但是下载经常出现图片不完整
    我虽不怎么懂 python ,代码也是抄的,但是找到了一个笨办法解决:
    足够的迭代重试,就可以解决下载图片不完整或者空的问题。
    fjgwg
        40
    fjgwg  
       2015-08-24 15:03:06 +08:00   1
    要扒你自己一个人扒,现在还把代码发出来 搞的大家都在扒
    zixianlei
        41
    zixianlei  
       2015-08-24 15:12:55 +08:00 via Android
    难道楼上就是站长?哈哈^ω^
    happywowwow
        42
    happywowwow  
       2015-08-24 15:16:52 +08:00
    站长 来了 哈哈哈
    wenbinwu
        43
    wenbinwu  
       2015-08-24 15:40:28 +08:00
    @freaks 你想在 python 里面运行另一个 python ?
    wenbinwu
        44
    wenbinwu  
       2015-08-24 15:41:05 +08:00
    哈哈哈,站长告诉你要 sleep
    chanssl
        45
    chanssl  
       2015-08-24 15:48:40 +08:00 via Android
    哈哈,笑翻了
    Kokororin
        46
    Kokororin  
       2015-08-24 15:55:22 +08:00
    好奇站长是怎么找过来的
    jonnn
        47
    jonnn  
       2015-08-24 16:06:37 +08:00
    站长找上门来了!
    malcolmyu
        48
    malcolmyu  
       2015-08-24 16:07:03 +08:00
    @fjgwg 爬的都访问不了了
    libotony
        49
    libotony  
       2015-08-24 16:13:20 +08:00
    @fjgwg 站长不哭,已经收藏你的站
    wuwuyun
        50
    wuwuyun  
       2015-08-24 16:14:45 +08:00
    hahahaha 站长哭晕在厕所
    idblife
        51
    idblife  
       2015-08-24 16:16:18 +08:00
    擦,我都是人肉爬虫的。。。

    http://qingbuyaohaixiu.com/
    flight2006
        52
    flight2006  
       2015-08-24 16:19:35 +08:00
    想起了我的 1024.py
    idblife
        53
    idblife  
       2015-08-24 16:25:03 +08:00
    @flight2006
    这位大哥口味够重
    话说那么多种图床,好抓吗?
    qinglangee
        54
    qinglangee  
       2015-08-24 16:25:29 +08:00
    把潜水的站长给逼了出来
    ybh37
        55
    ybh37  
       2015-08-24 16:30:10 +08:00
    硬生生的把站长逼出来了啊~
    Andy1999
        56
    Andy1999  
       2015-08-24 16:32:31 +08:00 via iPhone
    看到站长我笑了 哈哈哈哈
    axzy
        57
    axzy  
       2015-08-24 17:03:12 +08:00
    楼主可以把图片打包提供下载吗
    karlxu
        58
    karlxu  
       2015-08-24 17:04:32 +08:00 via iPhone
    @Dongdong36 请教下怎么加代理?
    thinkmore
        59
    thinkmore  
       2015-08-24 17:08:24 +08:00   1
    为啥不把链接先趴下来呢
    Dongdong36
        60
    Dongdong36  
       2015-08-24 17:12:41 +08:00   1
    flight2006
        61
    flight2006  
       2015-08-24 18:17:48 +08:00   1
    @idblife 我就抓自拍板块下的图,难度还可以吧,需要随机换浏览器头信息,不然会 403
    freaks
        62
    freaks  
       2015-08-24 18:25:06 +08:00
    @zhanzhang,sorry,I'm sorry , I'm python newbie, only a test
    jiehuangwei
        63
    jiehuangwei  
       2015-08-24 18:39:43 +08:00   1
    站长,你们可以一起喝个东西,讨论下合作的可能性
    liuxu
        64
    liuxu  
    OP
       2015-08-24 19:25:24 +08:00 via Android
    @fjgwg 站长哥你来了啊!其实我就是手抖了一下,把代码不小心抖出来了,然后抖上了 github ,又抖到了 V2EX ,真的。。你知道的,单身狗,手抖的厉害,控制不住。。
    liuxu
        65
    liuxu  
    OP
       2015-08-24 19:27:18 +08:00 via Android
    @fjgwg 哥的站我收藏了,给我机油分享,妥妥的
    wezzard
        66
    wezzard  
       2015-08-24 19:30:18 +08:00
    @fjgwg 站长不哭,站起来撸。(我也要扒……逃
    liuxu
        67
    liuxu  
    OP
       2015-08-24 19:31:34 +08:00 via Android
    @axzy 怕站长打我屁屁哈哈哈
    liuxu
        68
    liuxu  
    OP
       2015-08-24 19:32:52 +08:00 via Android
    @thinkmore 第一次写没经验,下一个程序我会注意的
    gulullu
        69
    gulullu  
       2015-08-24 19:49:00 +08:00
    @Dongdong36 求妹纸图片 = =
    lao454490095
        70
    lao454490095  
       2015-08-24 20:38:40 +08:00
    @omph hhh ,你这主意不错
    Dongdong36
        71
    Dongdong36  
       2015-08-24 21:19:07 +08:00
    ltxxgs
        72
    ltxxgs  
       2015-08-24 22:04:47 +08:00
    谁再写一个, 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
        73
    metas  
       2015-08-24 22:19:51 +08:00
    @fjgwg 你为何如此叼,都找上门来了
    coderkiss
        74
    coderkiss  
       2015-08-24 22:34:41 +08:00
    @idblife 你的站点质量高 :D
    fjgwg
        75
    fjgwg  
       2015-08-24 22:42:07 +08:00
    得不到的拼命想得到,正当你得到时其实并没有想象中的那么好。


    一切都是浮云。。
    cbsw
        76
    cbsw  
       2015-08-24 22:45:05 +08:00
    你们这帮禽兽,我都还来不及看看网站里都有什么样的妹子,就被你们玩成 502 了
    ether
        77
    ether  
       2015-08-24 23:54:34 +08:00
    警察叔叔就是这个人!
    shenxian
        78
    shenxian  
       2015-08-25 00:19:11 +08:00
    233 站长好拼 笑死我了
    smallsix
        79
    smallsix  
       2015-08-25 08:02:45 +08:00
    @wizardoz 我擦,是你吗?
    smallsix
        80
    smallsix  
       2015-08-25 08:15:02 +08:00
    @ltxxgs 把地址改下就好了
    billwang
        81
    billwang  
       2015-08-25 08:47:49 +08:00
    站长还是打个包在 v2 上发个福利吧,不然大家还得分头跑,多浪费时间呀。哈哈
    hdbean
        82
    hdbean  
       2015-08-25 08:52:19 +08:00
    t6 的图的可以爬吗?
    wizardoz
        83
    wizardoz  
       2015-08-25 08:58:39 +08:00
    @smallsix 是谁?
    kknd22
        84
    kknd22  
       2015-08-25 09:10:31 +08:00
    其实我也不懂 python
    顺道求楼主,多线程教程
    GG668v26Fd55CP5W
        85
    GG668v26Fd55CP5W  
       2015-08-25 09:15:57 +08:00 via iPhone
    为了这个默默抄起荒废多年的 Python
    liuxu
        86
    liuxu  
    OP
       2015-08-25 09:18:17 +08:00
    liushuaikobe
        87
    liushuaikobe  
       2015-08-25 09:21:36 +08:00
    这种东西果断 gevent 啊!眨眼间就可以判断出来被扒的站有没有做放扒策略!
    liuxu
        88
    liuxu  
    OP
       2015-08-25 09:50:57 +08:00
    Alex77Lee
        89
    Alex77Lee  
       2015-08-25 09:55:50 +08:00
    我只是把被抓的网站拿走了。
    kknd22
        90
    kknd22  
       2015-08-25 12:53:22 +08:00
    @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
        91
    brotherlegend  
       2015-08-25 12:58:22 +08:00
    站长表示 很气愤,净浪费带宽。哈哈。
    smallsix
        92
    smallsix  
       2015-08-25 14:56:11 +08:00
    @wizardoz 你头像和我认识的一个朋友头像一样的,以为是同一个人呢
    Aresyz
        93
    Aresyz  
       2015-08-25 15:52:01 +08:00
    lz 和我去年神相似,当时边爬边写到文件夹, 5000+妹子图,用的 node ,来,握个爪!
    Ouyangan
        94
    Ouyangan  
       2015-08-25 16:37:23 +08:00

    66666
    shulen
        95
    shulen  
       2015-08-25 16:52:36 +08:00
    不开个网站,给大伙发个中秋福利啥的?
    liuxu
        96
    liuxu  
    OP
       2015-08-25 18:19:23 +08:00
    @Aresyz 握抓~
    aalska
        97
    aalska  
       2015-08-25 19:04:33 +08:00
    File "./nvshen_so.py", line 4
    <!DOCTYPE html>
    ^
    SyntaxError: invalid syntax

    是啥问题 对 python 完全陌生
    Ixizi
        98
    Ixizi  
       2015-08-25 19:26:10 +08:00
    哈哈哈哈~~~~ 求学习资料!!! 表示很感兴趣
    liuxu
        99
    liuxu  
    OP
       2015-08-25 20:25:02 +08:00 via Android
    @aalska 你做了什么,是不是改了代码
    liuxu
        100
    liuxu  
    OP
       2015-08-25 20:26:14 +08:00 via Android
    @Ixizi 欲望是最好的老师哈哈哈
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5560 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 08:56 PVG 16:56 LAX 01:56 JFK 04:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86