解决爬虫中文乱码问题
从网页上获取网页源代码进行解析,用到HttpURLConnection读取网页内容,对于一些需要登录的网站用HttpURLConnection可以带着cookie访问网站,可以免去登录验证的问题,具体做法是用户登录网站,这时候网站会给用户一个cookie,这个cookie通过浏览器查看是一个字符串,每次访问只要带着这个cookie(字符串)即可,具体可看:另一篇关于爬教务网成绩的文章。
在爬教务网成绩的程序中没有遇到这个问题,当时是改了项目的编码集,但是这次怎么更改也是乱码,中文显示一堆特殊符号,通过查看网页源代码,网页指定的编码集是GBK
为什么会出现乱码(乱码的出现情况)?
乱码的根本问题是编码集不一致,假入一个网页使用这个编码集,而你却用另一种编码集,这个编码集对应的文字可能在另一个编码集中对应的就不知道是什么了,可能就是一些你不认识的字符。
只要想办法指定程序中读出来或者处理的时候的编码集就好了,在使用HttpURLConnection读出网页数据的时候,可以使用封装好的方法直接输出字节流,为了避免中文通过字节读取乱码的问题,我们可以通过转换,把字节流转换成字符流处理即可。
解决方法:在读出字节流的时候进行编码(这里指定和网页相同的编码集)
具体的逻辑注释在爬教务网那篇里都有,源码在github上,欢迎访问!