现在爬虫提交部分算是暂时写完了,总结一下
hdu是windows服务器,编码是gbk的,而我的服务器是ubuntu,编码是utf-8,如何统一编码是一个问题
暂时我理解的是这样的:
有两个操作一个叫encode 一个叫decode
encode是把二进制变成中文字符串,中文字符串是存在与内存中的,我理解他是对应的是屏幕的图形,最后要打印在屏幕上的,所以不同编码解码后的中文字符串对应的是同一个东西(个人理解,可是事实不是这样的)
requests得到的东西是http的响应数据包,从网卡撸出来的是二进制,requests这个模块会分析二进制http头部之类的玩意,然后给他的encoding属性一个编码值,这样text数据就是解码后的字符串了。而杭电requests默认的是什么iso-8859-1,但如果按这个方式解码中文就会乱码,所以:
req = requests.get(url = url , headers = self.headers , timeout = 2);
req.encoding = 'gb2312';
这样就直接就得到正确的中文字符串了,后面直接按utf-8编码解码中文也会正常显示的
再有是了解了浏览器检查元素的强大用法
直接上图
假设是post请求,Post的表单不需要抓包,在直接看http headers的时候chrome会在form data上面显示你的提交的表单,同理如果某个网站post前将数据加密了,那么表单上面也会用密文显示出来,爬虫可以直接用这个密文Post给他的地址,一样可以登陆,无需了解他的加密方式
暂时先写这么多,有时间在写