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

新人报道,带来一段自己的 Python 的正方教务系统爬虫

  •  
  •   remnet ·
    yijiasu · 2014-05-06 00:45:39 +08:00 · 10346 次点击
    这是一个创建于 3645 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近由于多种原因决定放出去自己写的一段Python的正方系统爬虫,现在还不是很完善,支持课表、成绩等数据的抓取。
    爬虫现在还相当相当不完善。。目前测试过的学校就我自己的学校,华南理工大学,以及华农。
    不过稍微修改一下基本所有的正方系统的学校都能适配。。我自己的华工校园APP项目iSCUT就在使用这套爬虫。

    代码目前在github: http://github.com/yijiasu/openzf

    各路大神轻喷… 希望大家优化匹配好其他学校的系统~
    有问题直接回复我或者email~
    15 条回复    2014-07-20 17:11:26 +08:00
    zts1993
        1
    zts1993  
       2014-05-06 08:58:49 +08:00 via Android   ❤️ 1
    很不错,我上次只写了爬课表,,
    Comdex
        2
    Comdex  
       2014-05-06 11:19:13 +08:00 via Android   ❤️ 1
    教务系统登录有验证码这个也解决了?
    halfcrazy
        3
    halfcrazy  
       2014-05-06 14:02:09 +08:00   ❤️ 1
    验证码看上去是基本的那种,可以参考我写的这个
    https://github.com/halfcrazy/DecodeValidateCode
    remnet
        4
    remnet  
    OP
       2014-05-06 14:48:17 +08:00
    @zts1993 我也在github看到你的代码了。。
    这个爬虫还不是很完善,准备有空找更多学校的人来适配
    remnet
        5
    remnet  
    OP
       2014-05-06 14:48:37 +08:00
    @halfcrazy 验证码似乎是有办法可以绕过的。。。
    remnet
        6
    remnet  
    OP
       2014-05-06 14:48:57 +08:00
    @Comdex 现在还得手工加入验证码
    halfcrazy
        7
    halfcrazy  
       2014-05-06 15:48:21 +08:00
    @remnet 能不能绕过就得抓包具体分析了,如果能绕过那是最好的了,速度能快不少。
    RockyLee
        8
    RockyLee  
       2014-05-06 15:55:26 +08:00   ❤️ 1
    http://正方地址/default_ysdx.aspx 这个方法好用不 http://blog.zts1993.com/5387.html
    remnet
        9
    remnet  
    OP
       2014-05-06 16:07:56 +08:00
    @RockyLee @halfcrazy 卧槽 这个可以用。验证码可以破了
    tuteng
        10
    tuteng  
       2014-05-06 18:31:52 +08:00
    http://gotit.asia/ 看看我们学校的
    remnet
        11
    remnet  
    OP
       2014-05-06 18:38:21 +08:00
    @tuteng 好像不错,也是正方系统?用啥做解析的
    tuteng
        12
    tuteng  
       2014-05-06 18:51:07 +08:00   ❤️ 1
    正方系统。但是不是俺做的,对web开发不懂,不敢乱说。
    https://github.com/zhwei/gotit 这是源码,你可以跟作者交流交流
    Comdex
        13
    Comdex  
       2014-05-06 22:23:42 +08:00   ❤️ 1
    之前用golang做了一个只能成功获取登录后的首页的,貌似我们学校这个没用到cookie的,好像采取post传送动态sessionID这样的机制(不懂怎么说),http://jwc.gduf.edu.cn
    remnet
        14
    remnet  
    OP
       2014-05-06 23:06:19 +08:00
    @Comdex 你们学校也是使用在URL里面加入一段乱七八糟的hash的方法。
    其实我很不理解为什么正方会这么做?防止爬虫?可我发现也没能防止啊,无非就是多了个步骤。
    这段hash似乎可以自己修改,只要保持位数不变。不然会报404错误

    PS:你们学校应该可以直接套用我的代码来抓取。你可以试试看。联系我提供个账号~ 我有空加入你们学校的适配~
    Eisblume
        15
    Eisblume  
       2014-07-20 17:11:25 +08:00
    大神,你的程序的sendmail.py是什么内容,我运行了,发现报“python: can't open file 'sendmail.py': [Errno 2] No such file or directory”这样的错误。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1037 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:36 · PVG 02:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.