写了一个微博相册的爬虫,顺便根据爬虫抓到的图片,写了个随机发图的 Telegram 的 Bot。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lincanbin
V2EX    分享创造

写了一个微博相册的爬虫,顺便根据爬虫抓到的图片,写了个随机发图的 Telegram 的 Bot。

  •  5
     
  •   lincanbin
    lincanbin 2015-11-17 09:52:41 +08:00 14309 次点击
    这是一个创建于 3626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新浪微博上有不少福利号,想保存一下他们的图片。
    于是昨天中午吃饭前花了点时间,拿 Python 写了个爬虫,扔 VPS 上爬了上万张图。

    难以遏制想与大家分享的心情,看了看 Telegram 的 Bot API 文档,发现 tg 的 bot 设计还是挺简单的,于是根据 Telegram 给的 demo 进行修改,做了一个发图的 Bot 出来。

    Telegram 的 Bot 的演示: https://telegram.me/canbin_bot

    爬虫: https://github.com/lincanbin/Sina-Weibo-Album-Downloader
    Telegram Bot: https://github.com/lincanbin/Telegram-Simple-Image-Bot

    35 条回复    2017-01-20 08:59:29 +08:00
    lincanbin
        1
    lincanbin  
    OP
       2015-11-17 09:55:55 +08:00   1


    爬虫抓了几 GiB 的图片,在 DeactivatedOcean 上跑了好几分钟,可以跑满百兆带宽,并没有被 Deactivated 。
    昨天吃饭时一直盯着手机的 SSH 客户端,生怕被 Deactivated 了。

    图片内容来自一批微博账号,抓了上万张吧,并没有一一查看,大抵都是妹子图吧?
    zangbob
        2
    zangbob  
       2015-11-17 10:04:02 +08:00
    感谢灿神又有好作品分享~~~已 star ……

    (是否应再加几行字: 1024 楼主好人之类的…… :)
    n37r06u3
        3
    n37r06u3  
       2015-11-17 10:22:21 +08:00
    readme 里截图用的什么浏览器
    GPU
        4
    GPU  
       2015-11-17 10:23:43 +08:00
    @lincanbin 我想知道是哪一批微博账号 。
    lincanbin
        5
    lincanbin  
    OP
       2015-11-17 10:23:46 +08:00
    @n37r06u3 Edge
    lwbjing
        6
    lwbjing  
       2015-11-17 10:41:38 +08:00
    fllow
    jedyu
        7
    jedyu  
       2015-11-17 10:58:29 +08:00
    Lofter 也有好多哦
    lincanbin
        8
    lincanbin  
    OP
       2015-11-17 11:10:23 +08:00 via Android
    @jedyu 请把地址发我,我要去抓。
    Suclogger
        9
    Suclogger  
       2015-11-17 11:16:45 +08:00
    果然福利才是人类的根本驱动力么
    halfer53
        10
    halfer53  
       2015-11-17 12:19:58 +08:00
    Tumblr 才是最多的,各种福利简直精尽人亡
    lincanbin
        11
    lincanbin  
    OP
       2015-11-17 12:24:08 +08:00
    @halfer53 所以说,账号呢?

    有 tg 账号的在 tg 群里发我: https://telegram.me/joinchat/BdahuwNx-nH8B5Ko6_swww
    halfer53
        12
    halfer53  
       2015-11-17 12:36:46 +08:00
    @lincanbin http://www.coolapk.com/apk/com.tumblr 酷安评论里有很多。我的 Tumblr 上还关注了 200 多个绝对领域的,回家后发给你
    chengzhoukun
        13
    chengzhoukun  
       2015-11-17 12:43:35 +08:00
    还有新闻联播截图
    lonelygo
        14
    lonelygo  
       2015-11-17 12:45:26 +08:00
    已, 1024 赞。
    imn1
        15
    imn1  
       2015-11-17 12:47:42 +08:00
    爬虫不难搞,难的是如何搜集发布号, share 一下吧
    Hysteria
        16
    Hysteria  
       2015-11-17 13:04:22 +08:00
    bot 简直不能太溜,赞得飞起。
    lincanbin
        17
    lincanbin  
    OP
       2015-11-17 13:38:00 +08:00
    @halfer53 Tumblr 好像还有视频啊,我要抓 Tumblr 。
    phithon
        18
    phithon  
       2015-11-17 13:39:54 +08:00
    分享福利号啊!!
    PandaSaury
        19
    PandaSaury  
       2015-11-17 14:18:33 +08:00
    可以在 github 开个地方,专门收集福利号
    mfinal
        20
    mfinal  
       2015-11-18 00:45:00 +08:00
    已经 star 表示。学习一下怎么爬 weibo
    joewangyz
        21
    joewangyz  
       2015-11-18 14:44:55 +08:00
    关键是福利号啊,,不然哪获取 OID 和 照片墙的 cookie 。。
    cclishan
        22
    cclishan  
       2015-11-18 16:12:30 +08:00
    @lincanbin Tumblr 太多了 。。要不要公布关注列表。。
    banri
        23
    banri  
       2015-11-18 21:37:31 +08:00
    200 个绝对领域!
    touch
        24
    touch  
       2015-11-19 18:35:58 +08:00
    @lincanbin 之前也爬过微博信息。但是账号被封了。怎么解决的
    lincanbin
        25
    lincanbin  
    OP
       2015-11-19 19:41:33 +08:00
    @touch 爬图床就没事,爬 API 有频率限制的。
    touch
        26
    touch  
       2015-11-20 11:54:09 +08:00
    @lincanbin 我是直接通过页面 html 爬取没有调用 api
    touch
        27
    touch  
       2015-11-20 11:55:53 +08:00
    @lincanbin 爬取一段时间后就只直接账号被封。被检测到属于异常行为
    lincanbin
        28
    lincanbin  
    OP
       2015-11-20 13:42:43 +08:00
    @touch 我爬的那部分,都不用登录啊
    touch
        29
    touch  
       2015-11-20 14:05:54 +08:00
    @lincanbin #;#
    fuliti
        30
    fuliti  
       2015-11-22 16:03:12 +08:00
    感觉好神奇 ,可惜不会用。
    JiaFeiX
        31
    JiaFeiX  
       2015-12-02 12:34:52 +08:00
    请问楼主爬取的哪些账号?
    bbjoe
        32
    bbjoe  
       2016-08-30 17:43:21 +08:00
    请问爬相册老会爬漏是什么问题呢?比如 402 个图片 id ,运行完只得百来张。
    lincanbin
        33
    lincanbin  
    OP
       2016-08-30 17:49:25 +08:00
    @bbjoe 设置 CRAWL_PHOTOS_NUMBER = 402
    要爬取的图片上限
    lincanbin
        34
    lincanbin  
    OP
       2016-08-30 17:49:46 +08:00
    @bbjoe 或者直接让 CRAWL_PHOTOS_NUMBER = 10000
    设个非常大的数值。
    yxqcyl
        35
    yxqcyl  
       2017-01-20 08:59:29 +08:00
    出现以下错误是什么原因?

    ['4065529837148919']
    9f128f33jw1e8qgp5bmzyj2050050aa8.jpg
    lxhxixi_org.gif
    2Flxhxixi_org.gif
    9f128f33ly1fbw8sp2ro7j20qo1beq4l.jpg
    Exception in thread Thread-51:
    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 137, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
    File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 67, in create_connection
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
    File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
    socket.gaierror: [Errno -3] Temporary failure in name resolution

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 559, in urlopen
    body=body, headers=headers)
    File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 353, in _make_request
    conn.request(method, url, **httplib_request_kw)
    File "/usr/lib/python3.5/http/client.py", line 1106, in request
    self._send_request(method, url, body, headers)
    File "/usr/lib/python3.5/http/client.py", line 1151, in _send_request
    self.endheaders(body)
    File "/usr/lib/python3.5/http/client.py", line 1102, in endheaders
    self._send_output(message_body)
    File "/usr/lib/python3.5/http/client.py", line 934, in _send_output
    self.send(msg)
    File "/usr/lib/python3.5/http/client.py", line 877, in send
    self.connect()
    File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 162, in connect
    cOnn= self._new_conn()
    File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 146, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
    requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.HTTPConnection object at 0x7f6d60069b00>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send
    timeout=timeout
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4476 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 10:06 PVG 18:06 LAX 03:06 JFK 06:06
    Do have faith in what you're doing.
    ubao msn 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