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

[爬虫求助]像这种数据生成图片的怎么爬?

  •  
  •   fusae · 2016-07-21 16:47:28 +08:00 · 9087 次点击
    这是一个创建于 2829 天前的主题,其中的信息可能已经有所发展或是发生改变。
    57 条回复    2016-08-02 11:10:33 +08:00
    hxtheone
        1
    hxtheone  
       2016-07-21 17:42:01 +08:00
    有点难, 为了防 OCR 还加了噪点, 真是蛮拼的
    l0wkey
        2
    l0wkey  
       2016-07-21 17:42:31 +08:00
    爬接口..
    fleer
        3
    fleer  
       2016-07-21 17:46:06 +08:00 via Android
    我输错了几次验证码,连图片啥样子都没看到。
    fusae
        4
    fusae  
    OP
       2016-07-21 17:48:40 +08:00
    OCR 挺简单解决的。。[看这个]( https://segmentfault.com/q/1010000005686388)。 @l0wkey 爬接口是啥意思,新人不懂
    fusae
        5
    fusae  
    OP
       2016-07-21 17:56:52 +08:00
    @hxtheone 你的意思是用 OCR 去噪图片转文字?
    imNull
        6
    imNull  
       2016-07-21 17:59:06 +08:00 via Android
    这个我之前看过,给你点思路:
    不要通过 web 获取成绩,这个教务系统有一个 app ,叫掌上校园,抓包分析一下,可以直接 post 然后拿到 json ,

    但是, post 的学号等参数加密了,逆向下 apk ,仔细看看 java 源代码(不才,我没能解出来。解出来了记得 @下我哈)
    imNull
        7
    imNull  
       2016-07-21 17:59:43 +08:00 via Android
    对了,下载那个 apk ,要去搜下老版本的,新版本的难度比较大
    imNull
        8
    imNull  
       2016-07-21 18:01:32 +08:00 via Android
    忽略上边我的回复,,,,看错了,貌似不是同一个系统
    imNull
        9
    imNull  
       2016-07-21 18:03:21 +08:00 via Android
    建议 LZ 贴上图。。。
    hxtheone
        10
    hxtheone  
       2016-07-21 18:21:08 +08:00
    @fusae 我的意思是这网站为了不让人爬还给图片加上了噪点, 这样 OCR 还要先去噪点, 也是蛮拼的, 这样还是找数据接口爬吧
    UnisandK
        11
    UnisandK  
       2016-07-21 18:25:52 +08:00
    一个课表而已这学校要不要这么拼。。
    nkssai
        12
    nkssai  
       2016-07-21 18:31:10 +08:00
    这个噪点挺规律的,二值化以后试一试一般的滤波算法,或者 ising model ,直接给分类器说不定都可以的。
    fusae
        13
    fusae  
    OP
       2016-07-21 19:19:11 +08:00
    @hxtheone 怎么找数据接口啊?
    fusae
        14
    fusae  
    OP
       2016-07-21 19:20:03 +08:00
    @nkssai 你这个解决方案有点高大上啊(仰望角度
    JayaOcean
        15
    JayaOcean  
       2016-07-21 20:36:39 +08:00
    校友[握爪] ~
    之前研究过,这套旧版教务系统为了推广自己的 APP ,防爬做得很恶心。
    以下两个思路:
    1.模拟登陆教务系统。用楼上 SF 的方案识别验证码。登陆后从网上选课>正选结果可以直接拿到课表, GET http://csujwc.its.csu.edu.cn/wsxk/stu_zxjg.aspx ,再自己解析 HTML 。
    2.新版教务系统。也需要破验证码。再 GET http://jwctest.its.csu.edu.cn/jsxsd/xskb/xskb_list.do ,之后解析 HTML 。
    中南 e 行 APP 已死,不知道接口还能不能用,就酱。
    总之,每年总有几个娃要浪费时间在这 shit 上,骚年早日弃坑。
    fusae
        16
    fusae  
    OP
       2016-07-21 21:00:37 +08:00
    @JayaOcean 你好,说两点
    1.我做的这个不能登录,登录了只能看自己的课表,我是要把全校的班级的课表都要爬下来哟。
    2.很抱歉我们不是校友,就应该是同一间公司做的网站,我看它的网页源码有注释你的大学名字,应该网站比我这个更早建吧。所以之所以这么难爬都是因为你们学校的错吗? 233
    mikii
        17
    mikii  
       2016-07-21 21:30:20 +08:00
    你可以搜一下萌小助、大学助手、超级大学、这些都是专业爬学校教务的...
    mikii
        18
    mikii  
       2016-07-21 21:32:04 +08:00
    @imNull 这好像是青果的教务系统。。
    fusae
        19
    fusae  
    OP
       2016-07-21 21:46:40 +08:00
    @mikii 对,是青果的
    beibeijia
        20
    beibeijia  
       2016-07-21 21:47:27 +08:00
    这个验证码确实挺简单的,基本的二值化,去噪以及一些简单微处理后在没有分割建模的情况下直接就可以用 tesseract 识别,俺随机下了 7 张图片做测试,其中 4 张可以被成功识别, so ,别劳神了直接开搞吧!
    fusae
        21
    fusae  
    OP
       2016-07-21 21:58:49 +08:00
    @beibeijia 不是验证码的问题,是它的课表是直接甩你一张图片,一点文字都不给我
    beibeijia
        22
    beibeijia  
       2016-07-21 22:12:23 +08:00
    @fusae 哦,抱歉,没看清问题(拍脑)。
    ryan93
        23
    ryan93  
       2016-07-21 22:35:08 +08:00
    校友+1 ,你还记得有个微哨应用设计大赛吗?不过那都是几年前的事情了。
    fusae
        24
    fusae  
    OP
       2016-07-21 22:42:38 +08:00
    @ryan93 微哨死得很惨,现在还有人用它吗?
    ryan93
        25
    ryan93  
       2016-07-21 23:31:30 +08:00
    @fusae 只是一个内网聊天工具,再说当年实验室和宿舍区网络没断开的日子里,内网资源发展得挺不错(例如 GNU/Linux 协会),自己写一个网页版的聊天应用也不是什么难事。现在实验室与宿舍网路不能相通(除在 172.31.*.*网段搭桥外),少了当年挖掘内网的乐趣了,不得不说有点令人伤感。
    fusae
        26
    fusae  
    OP
       2016-07-21 23:54:30 +08:00
    @ryan93 现在就自己带本本去实验室咯
    momou
        27
    momou  
       2016-07-22 00:29:02 +08:00
    https://github.com/feifei435/tit-client
    青果教务管理登录和学校官网新闻阅读的客户端

    慢慢研究
    vmebeh
        28
    vmebeh  
       2016-07-22 01:18:05 +08:00
    格式二是不是包含了全部科目,如果用相似度会不会更快点
    upczww
        29
    upczww  
       2016-07-22 07:39:20 +08:00 via Smartisan T1
    强智有没有人爬过?
    lneoi
        30
    lneoi  
       2016-07-22 08:54:50 +08:00
    这验证码...每个字符颜色不一样字符也独立 靠色值过滤应该可以直接定出大部分范围
    要爬成文字, 这个图片质量太差, 昨天还看到百度推出 orc 接口 试试那个?
    m939594960
        31
    m939594960  
       2016-07-22 09:06:39 +08:00
    直接把图爬下来不好么。。。。
    fusae
        32
    fusae  
    OP
       2016-07-22 09:38:17 +08:00
    @vmebeh 什么是相似度?
    fusae
        33
    fusae  
    OP
       2016-07-22 09:59:55 +08:00
    我想到一个,不知道可不可行。它前面不是有个“课程课表”吗,现在我要爬的是“班级课表”,参数是“学年学期”和“具体班级”,而“课程课表”的参数是“学年学期”和“具体课程”。那么我是不是可以根据选定的学年学期把该学年学期的所有具体课程都爬一遍,若是该课程包含“具体班级”,那么就是证明“具体班级”在该学年学期有上这门课!这样自己把图里面的数据重新生成了一遍。
    scnace
        34
    scnace  
       2016-07-22 10:13:45 +08:00 via Android
    233 爬方正路过 还好没这个这么变态(
    fusae
        35
    fusae  
    OP
       2016-07-22 10:20:41 +08:00
    @scnace 为什么这么变态而那些大学助手都能爬下来的?
    scnace
        36
    scnace  
       2016-07-22 12:47:50 +08:00 via Android
    @fusae 方正感觉还好啊。。。
    davidlau
        37
    davidlau  
       2016-07-22 13:01:35 +08:00
    用 OpenCV: 去噪点----->二值化----->把字符图像抠出来
    然后用 CNN 一类的工具去做 OCR
    practicer
        38
    practicer  
       2016-07-22 14:35:39 +08:00
    @davidlau
    @fusae
    @beibeijia
    @JayaOcean
    按你们 refer 的方法试了一下,验证码的问题用 pillow 解决解决了,那 iframe 里的内容怎么获取?找数据源还是 selenium+phantomJS 模拟鼠标事件?
    former
        39
    former  
       2016-07-22 15:28:40 +08:00
    生成图片的 url 不能直接爬啊
    romotc
        40
    romotc  
       2016-07-22 16:30:21 +08:00
    歪个楼,这系统也太业界良心了,就本分的做好本职功能就好了嘛,有人爬就好好的让人爬嘛。
    是什么驱使它废了这么大力气做的这么“完善”呢?
    orzfly
        41
    orzfly  
       2016-07-22 22:30:03 +08:00
    http://jwxt.dgut.edu.cn/jwweb/ZNPK/KBFB_DayJCSel.aspx

    周课表是文字而不是图片吧!虽然因为数据量挺大的加载有点慢。
    orzfly
        42
    orzfly  
       2016-07-22 22:30:56 +08:00
    只要输入 24 次验证码就能抓到所有课程数据了呀(共 24 周)
    imNull
        43
    imNull  
       2016-07-22 22:47:20 +08:00 via Android
    @mikii @fusae 青果的,直接破 app 吧,觉着要比从 web 入手简单点
    imNull
        44
    imNull  
       2016-07-22 22:48:44 +08:00 via Android   ❤️ 1
    @upczww 我做过强智的,但我学校是没有验证码的,可以参考一下我的 https://github.com/xu42/Qznjw2014
    macroideal
        45
    macroideal  
       2016-07-23 00:36:32 +08:00
    做这个系统的一定是一个心机婊, 右键都禁了的
    fusae
        46
    fusae  
    OP
       2016-07-23 09:39:34 +08:00
    @orzfly 这个可以有,虽然有一列没有。
    fusae
        47
    fusae  
    OP
       2016-07-23 09:40:55 +08:00
    @imNull 我有下青果的 app ,但是竟然不支持我校?!
    imNull
        48
    imNull  
       2016-07-23 09:50:51 +08:00 via Android
    @fusae 这就非常尴尬了。。。换下版本试试?
    fusae
        49
    fusae  
    OP
       2016-07-23 10:03:33 +08:00
    @imNull 就只有新版本啊,哪有别的版本
    lrigi
        50
    lrigi  
       2016-07-23 10:56:27 +08:00
    讲道理,看了下我校的课程表,直接就是在网页上的 excel 表格的样子,所有年级专业随便点也不用输验证码。。。
    smilekung
        51
    smilekung  
       2016-07-23 12:58:28 +08:00
    解决不了系统就解决人啊 找教务处老师给导一份出来咯
    oceantree
        52
    oceantree  
       2016-07-23 15:41:12 +08:00
    loading
        53
    loading  
       2016-07-23 15:45:17 +08:00 via Android
    这所大学果然是培养人的 233
    mingyun
        54
    mingyun  
       2016-07-23 19:49:46 +08:00
    @oceantree nice
    lavande
        55
    lavande  
       2016-07-24 13:33:57 +08:00
    这个问题不是爬虫的问题,而是爬下来之后怎么处理所得到的数据的问题……
    http://jwxt.dgut.edu.cn/jwweb/ZNPK/drawkbimg.aspx?type=1&w=1110&h=7140&xn=2015&xq=1&bjdm=1101201201
    发送这些参数请求,服务器返回图像…
    ryan93
        56
    ryan93  
       2016-08-02 11:10:05 +08:00
    这个教务系统有个特点,就是数据据经常挂掉。
    ryan93
        57
    ryan93  
       2016-08-02 11:10:33 +08:00
    @ryan93 数据库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1688 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.