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

写了个爬虫登录知乎和 Bilibili 网站,求教验证码识别

  •  2
     
  •   newhotter · 2016-09-19 09:15:59 +08:00 · 9772 次点击
    这是一个创建于 3013 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是利用 Selenium 写的。 想装逼但是装的不是很畅快,因为不好识别验证码。具体的可以看利用 Selenium 来实现知乎和 Bilibili 的登录,求给点建议。 这是 Bilibili 的登录代码。

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    import time
    
    browser = webdriver.Chrome()
    browser.get('https://passport.bilibili.com/login')
    
    browser.find_element_by_name("userid").send_keys("input_your_userid")
    browser.find_element_by_name("pwd").send_keys("input_your_password")
    time.sleep(10)
    #browser.find_element_by_xpath("/html/body/div[3]/div/div[2]/div[3]/form").submit()
    browser.find_element_by_xpath("/html/body/div[3]/div/div[2]/div[3]/form/input[4]").submit()
    
    33 条回复    2016-09-20 14:38:05 +08:00
    whwq2012
        1
    whwq2012  
       2016-09-19 09:23:52 +08:00 via Android
    我每次都是自己输入的,而且不需要用这么麻烦的, bilibili 可以直接 post 上去啊
    newhotter
        2
    newhotter  
    OP
       2016-09-19 09:28:17 +08:00
    @whwq2012 恩。但是还是觉得 Selenium 这种看得见的比较舒服。
    验证码实在不想输入。。太不智能了。。
    感觉 captcha 没有什么通用的解决办法。。心塞。。
    seerhut
        3
    seerhut  
       2016-09-19 09:29:18 +08:00
    google 打码平台
    murmur
        4
    murmur  
       2016-09-19 09:32:20 +08:00
    建议你最好放弃 机器人识别永远比不上人眼 被你们这群抓别人资料的人逼得 很多网站的验证码已经到人都人不出来的地步了
    要么就打码。。
    newhotter
        5
    newhotter  
    OP
       2016-09-19 09:39:57 +08:00
    @murmur 所以打码其实本质还是人工输入咯?
    newhotter
        6
    newhotter  
    OP
       2016-09-19 09:40:22 +08:00
    @seerhut 恩,搜索了一下,感觉就是没有计算机自动识别的好办法?
    lxy
        7
    lxy  
       2016-09-19 09:42:29 +08:00
    B 站登录简单,验证也简单,识别率高,平均每条验证码不到一分钱。
    newhotter
        8
    newhotter  
    OP
       2016-09-19 09:45:47 +08:00
    @lxy 那还是算了=。=那我换个方式装 B 好了。。。比如下载 B 站视频。。
    wzxjohn
        9
    wzxjohn  
       2016-09-19 09:47:43 +08:00   ❤️ 2
    既然你在研究 B 站登陆,你就没发现从直播入口登陆不需要验证码么。。。有时候验证码并不只有识别出来一条路撒。
    est
        10
    est  
       2016-09-19 09:48:53 +08:00
    @wzxjohn 赞。。。跟微博一个路数!
    newhotter
        11
    newhotter  
    OP
       2016-09-19 09:52:06 +08:00
    @wzxjohn 哈哈哈,丢人丢大发了,,还真是耶。。。
    多谢哈。。
    flowfire
        12
    flowfire  
       2016-09-19 10:32:42 +08:00
    B 站手机登录不需要验证码。。。可以试试逆向或者抓包搞个借口
    leavic
        13
    leavic  
       2016-09-19 10:40:21 +08:00
    用 cookies 绕过登录不行吗?
    ookcode
        14
    ookcode  
       2016-09-19 11:47:26 +08:00
    感谢 wzxjohn 的提醒,原来还有直播登陆接口。
    我原来也撸过一个 b 站的脚本,有兴趣的看看,里面有登录时的密码加密方式。
    https://github.com/ookcode/BilibiliSofaSitter
    Geoion
        15
    Geoion  
       2016-09-19 12:19:20 +08:00   ❤️ 1
    好的,马上修这个 bug
    smileghost
        16
    smileghost  
       2016-09-19 13:19:29 +08:00
    @Geoion 哈哈哈, B 站的工程师能不能不要这么积极呀~
    rulerstorm
        17
    rulerstorm  
       2016-09-19 13:38:36 +08:00
    @Geoion 哈哈哈,服。
    qa52666
        18
    qa52666  
       2016-09-19 13:41:28 +08:00 via Android
    @Geoion 这很装逼
    Staruo
        19
    Staruo  
       2016-09-19 13:48:55 +08:00
    @Geoion 23333333 ,可以的
    reus
        20
    reus  
       2016-09-19 14:10:03 +08:00
    验证码本质就是阻挡自动登录,你研究出来方法,公开了,他们就会升级
    就如直播登录接口,自己知道就好了,私下传就好了,说出来,很快就会被修了的
    有路子且有脑子的人根本不会告诉你怎么做,免得你破坏了环境,例如把某些漏洞说了出去,搞到要重新找漏洞
    自己研究,或者私下交流吧,毕竟是灰色地带
    ookcode
        21
    ookcode  
       2016-09-19 14:23:18 +08:00
    @Geoion 23333 ,我服
    newhotter
        22
    newhotter  
    OP
       2016-09-19 14:26:21 +08:00
    @Geoion 哈哈哈哈哈。服气。。。这两天充分利用一下这个 bug 。。
    EyreFree
        23
    EyreFree  
       2016-09-19 14:28:45 +08:00
    @Geoion 666666
    azuginnen
        24
    azuginnen  
       2016-09-19 14:32:42 +08:00
    哈哈,真的是 b 站的呀


    Block
    Geoion
    bilibili.com
    V2EX 第 126853 号会员,加入于 2015-07-13 01:17:19 +08:00 ,今日活跃度排名 1238
    42 S 97 B
    Geoion
        25
    Geoion  
       2016-09-19 14:47:14 +08:00
    @azuginnen 是 B 站,不过不是直播部门
    Geoion
        26
    Geoion  
       2016-09-19 16:07:27 +08:00
    @smileghost 哈哈,知会一下负责这个的部门而已
    iannil
        27
    iannil  
       2016-09-19 16:09:56 +08:00
    在全球工单系统不能乱说话,各厂的人都有
    Srar
        28
    Srar  
       2016-09-19 18:38:40 +08:00
    我一个同群朋友用机器学习写了一个 bilibili 验证码识别 https://github.com/bilibiliHack/bilibiliCaptcha
    xiao201261
        29
    xiao201261  
       2016-09-19 19:12:50 +08:00
    bilibili 有些登录 page 并不需要验证码。。
    liuxu
        30
    liuxu  
       2016-09-19 19:27:49 +08:00
    @Geoion 斗智斗勇 233
    newhotter
        31
    newhotter  
    OP
       2016-09-19 20:39:32 +08:00
    @Srar 厉害啊! star 了
    fleer
        32
    fleer  
       2016-09-20 01:08:19 +08:00 via Android
    @Geoion 我也说个吧, av10492 不需要登录验证,也就是一些会员才能观看的页面不需要验证,我懒得输验证码就回去 10492,,Ծ^Ծ,,
    figofuture
        33
    figofuture  
       2016-09-20 14:38:05 +08:00
    mark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.