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
tumbzzc
V2EX  ›  Python

知乎图片爬虫

  •  
  •   tumbzzc · 2016-10-28 17:02:19 +08:00 · 4445 次点击
    这是一个创建于 2738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    知乎爬虫真麻烦
    懒得注释了
    第 1 条附言  ·  2016-10-28 20:50:24 +08:00

    其实也没啥好爬的,就是看看胸,看看腿

    第 2 条附言  ·  2016-10-28 23:15:45 +08:00
    没登录情况下创建的 gist 无法修改了。
    重新更新一份
    下载原图
    第 3 条附言  ·  2016-10-28 23:59:12 +08:00
    你们想要的 tumblr 爬虫 https://www.v2ex.com/t/316337
    36 条回复    2016-10-29 22:11:14 +08:00
    tumbzzc
        1
    tumbzzc  
    OP
       2016-10-28 18:05:58 +08:00
    一定是我的标题不够吸引人,所以没有人回复。
    消灭零回复
    Hyeongo
        2
    Hyeongo  
       2016-10-28 18:26:40 +08:00 via iPhone
    路过看看
    wjm2038
        3
    wjm2038  
       2016-10-28 18:45:47 +08:00 via Android
    看看
    loveagirlgl
        4
    loveagirlgl  
       2016-10-28 18:57:04 +08:00 via Android
    应该是图片不好看的原因~~
    tumbzzc
        5
    tumbzzc  
    OP
       2016-10-28 19:32:08 +08:00 via iPhone
    @loveagirlgl 知乎有人晒胸,有人晒腿,有人晒脸还可以😝
    moonkiller
        6
    moonkiller  
       2016-10-28 19:35:45 +08:00
    知乎有啥。。
    你应该写个 tumblr 的爬虫
    mzh
        7
    mzh  
       2016-10-28 19:42:14 +08:00 via iPhone
    @moonkiller 哈哈哈,这个建议很好很好~
    moonkiller
        8
    moonkiller  
       2016-10-28 19:52:11 +08:00
    @mzh 迅雷 7.9 内置了 tumblr 下载器--,但我刚扶墙出去试,一只提示我 http 错误( 10060 )不知道咋回事,难道这玩意需要迅雷服务器支持?
    tumbzzc
        9
    tumbzzc  
    OP
       2016-10-28 20:21:55 +08:00
    @moonkiller tumblr 小儿科。网站我都有了
    tumbzzc
        10
    tumbzzc  
    OP
       2016-10-28 20:22:22 +08:00
    @moonkiller 迅雷的服务不依靠迅雷的服务器,依靠你的本地服务
    liuxingou
        11
    liuxingou  
       2016-10-28 20:52:10 +08:00
    可惜不能解析知乎的高清大图,都是答案尺寸的小图,不过依然很不错,赞一个~
    lc4t
        12
    lc4t  
       2016-10-28 21:01:30 +08:00 via iPhone
    @moonkiller 这个有了..爬指定 site 的所有图片和视频
    tumbzzc
        13
    tumbzzc  
    OP
       2016-10-28 21:02:53 +08:00
    @liuxingou 哈哈哈,你不说我还真没发现,小图和大图只是一个字母的区别
    liuxingou
        14
    liuxingou  
       2016-10-28 21:21:49 +08:00
    @tumbzzc 是啊?哪里啊,我修改下几个大图试试。
    liuxingou
        15
    liuxingou  
       2016-10-28 21:24:38 +08:00
    @tumbzzc

    是_b 改成_r?
    kamen
        16
    kamen  
       2016-10-28 21:24:39 +08:00
    我默默的掏出身上所有的钱,去楼下买了一件营养快线
    moonkiller
        17
    moonkiller  
       2016-10-28 21:27:13 +08:00
    @lc4t 求工具
    tumbzzc
        18
    tumbzzc  
    OP
       2016-10-28 21:51:32 +08:00 via iPhone
    wjm2038
        19
    wjm2038  
       2016-10-28 22:04:37 +08:00 via Android
    @lc4t 求工具
    creaer
        20
    creaer  
       2016-10-28 22:08:27 +08:00 via Android
    @liuxingou 原图很简单啊 修改下代码就行了
    corona
        21
    corona  
       2016-10-28 22:10:49 +08:00 via iPhone
    为什么看到这么多腿
    tumbzzc
        22
    tumbzzc  
    OP
       2016-10-28 22:15:37 +08:00 via iPhone
    @corona 秀腿的问答
    liuxingou
        23
    liuxingou  
       2016-10-28 22:16:06 +08:00
    @creaer

    嗯,刚刚也发现了,替换一下就行了。
    liuxingou
        24
    liuxingou  
       2016-10-28 22:34:34 +08:00
    @creaer
    @tumbzzc


    最简单粗暴的方式了:

    ```Python

    for pic in pictures:
    print(pic)

    newpic=pic[0:-6]+'r.jpeg'

    print(newpic)


    downloader(newpic,savepath)

    ```
    liuxingou
        25
    liuxingou  
       2016-10-28 22:43:11 +08:00
    @creaer
    @tumbzzc


    不对,刚刚才想到,有的地方是 jpg ,有的地方是 jpeg 。

    用 kmp 搜索一下_b 所在位置,把这个位置替换成_r ,这样才是完美思路。
    tumbzzc
        26
    tumbzzc  
    OP
       2016-10-28 22:43:56 +08:00 via iPhone
    @liuxingou 那要那么麻烦
    [re.sub('_b','_r',pic) for pic in pics]
    liuxingou
        27
    liuxingou  
       2016-10-28 22:44:08 +08:00
    for pic in pictures:
    print(pic)


    tmp='_b'

    n=kmp_matcher(pic,tmp)

    print(n)

    newpic=pic[0:n+1]+'r'+pic[n+2:]

    print(newpic)


    downloader(newpic,savepath)
    tumbzzc
        28
    tumbzzc  
    OP
       2016-10-28 22:48:34 +08:00 via iPhone
    @liuxingou 你这一点都不优雅,看我上面的正则替换
    guonning
        29
    guonning  
       2016-10-28 23:49:59 +08:00 via Android
    期待 tumblr 的爬虫
    xiaozi
        30
    xiaozi  
       2016-10-29 00:36:27 +08:00
    老...司...机...
    tumbzzc
        31
    tumbzzc  
    OP
       2016-10-29 00:38:12 +08:00 via iPhone
    @xiaozi 我只是技术爱好者(微笑🙂)
    lc4t
        32
    lc4t  
       2016-10-29 03:16:35 +08:00
    liuxingou
        33
    liuxingou  
       2016-10-29 09:02:25 +08:00
    @tumbzzc


    正解了,第一反应是 kmp 而居然不是用正则,还是实际应用太少导致的。

    @lc4t
    这就去学习一下, 3 还是 2 的?
    forestyuan
        34
    forestyuan  
       2016-10-29 13:53:26 +08:00
    看胸看腿为什么去知乎呢?不是有很多更好的地方嘛……
    mingyun
        35
    mingyun  
       2016-10-29 19:58:37 +08:00
    @lc4t python3 还得改好多,哎,比如 print 和 from io import StringIO ,有个问题 session 不是可以直接用吗?为什么要在函数用 global 引用呢
    TabrisNagisa
        36
    TabrisNagisa  
       2016-10-29 22:11:14 +08:00
    厉害了我的哥 hhh
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2902 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.