Python3.4 模拟登录校园网 技巧和大坑记录 无验证码

最近深感python重要,加之raspberry上也需要,关键是能全力地解决问题而不是把时间耗散在实现的细节上,对于完成模型什么的还是非常牛的,于是先写一个模拟登陆来练练手。一开始就挑软柿子捏吧,选了学校的选课网站。无验证码。准备下一次挑个有验证码的玩玩

先把重要的技巧写出来吧,我的的是python3.4,最新版,各种碰壁各种坑,但索性一个个克服过来了,

首先推荐的是http://www.crifan.com/note_about_website_crawl_and_emulate_login/ 这位大神的文章,各种模拟登陆的技巧啊哈哈,本人也受益良多。以下有些部分也是重复的,不过都是自己实际碰上的坑,而且是python3.4版本的,所以还是写下来作为记录

一、辅助工具:wireshark:过滤器那里调到http,然后关闭其他无关的浏览器等等程序,然后再跑python程序,就能很舒服地对python发出的数据包进行查看了哦!当然也可以用Fiddler这个程序,不过urlopen请求的时候要设置代理

2、Fiirebug,调试JS,查看数据包,审查元素什么的都不在话下。不过不能查看python发送的数据包,所以还是需要wireshark配合

二、IDE 推荐Pycharm,知乎上好多人推荐那我也用这个鸟

三、python3对于python2 的改动非常多,而网络上现有的代码大多是基于python2的,所以做好改错的心理准别。如果不想把时间浪费在上面那么就建议直接使用python2,.7版本。其实不能向下兼容真的是一大败笔,尽管设计更加科学了,最大的改动无疑就是urllib模块了,以前杂乱无章的层次被改成了现在的urllib.parser   urllib.request  比如urllib.request.urlopen这样的,cookie模块变成了 http.cookiejar ,具体的查看下方源码吧。

五、编码问题:

首先是总结一下对于编码的做法:python内部用的是unicode,而如果要向外输出,那就需要编码(encode),比如UTF8 UTF16 GBK这类的,如果输入(比如从网络上抓取的网页,比如文件的读取),就需要解码成unicode,然后才能愉快的在python里头显示出各种字符,否则UTF8没有经过解码,直接print,如果英文还算正常,中文的话就会出现\xab\x21\x5b 这样的十六进制表示(三组一个汉字)。于是总结出的通用处理方法就是,输入时候统一解码成unicode,输出时候再统一编码成需要的编码

编码还算是挺容易的&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值