java网络爬虫,乱码问题终于完美解决详解编程语言
2023-06-13 09:11:47 时间
第一次写爬虫,被乱码问题困扰两天,试了很多方法都不可以,今天随便一试,居然好了。
在获取网页时创建了一个缓冲字节输入流,问题就在这个流上,添加标红代码即可
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(
connection.getInputStream(), utf-8 ));
附上代码,以供参考。
1 public String sendGet(String url) { 2 Writer write = null; 3 // 定义一个字符串用来存储网页内容 4 String result = null; 5 // 定义一个缓冲字符输入流 6 BufferedReader in = null; 7 try { 8 // 将string转成url对象 9 URL realUrl = new URL(url); 10 // 初始化一个链接到那个url的连接 11 URLConnection connection = realUrl.openConnection(); 12 // 开始实际的连接 13 connection.connect(); 14 // 初始化 BufferedReader输入流来读取URL的响应 15 in = new BufferedReader(new InputStreamReader( 16 connection.getInputStream(),"utf-8")); 17 // 用来临时存储抓取到的每一行的数据 18 String line; 20 File file = new File(saveEssayUrl, fileName); 21 File file2 = new File(saveEssayUrl); 23 if (file2.isDirectory() == false) { 24 file2.mkdirs(); 25 try { 26 file.createNewFile(); 27 System.out.println("********************"); 28 System.out.println("创建" + fileName + "文件成功!!"); 30 } catch (IOException e) { 31 e.printStackTrace(); 32 } 34 } else { 35 try { 36 file.createNewFile(); 37 System.out.println("********************"); 38 System.out.println("创建" + fileName + "文件成功!!"); 39 } catch (IOException e) { 40 e.printStackTrace(); 41 } 42 } 43 Writer w = new FileWriter(file); 45 while ((line = in.readLine()) != null) { 46 // 遍历抓取到的每一行并将其存储到result里面 47 // line = new String(line.getBytes("utf-8"),"gbk"); 48 w.write(line); 49 w.write("/r/n"); 50 result += line; 51 } 52 w.close(); 53 } catch (Exception e) { 54 System.out.println("发送GET请求出现异常!" + e); 55 e.printStackTrace(); 56 } 57 // 使用finally来关闭输入流 58 finally { 59 try { 60 if (in != null) { 61 in.close(); 62 } 64 } catch (Exception e2) { 65 e2.printStackTrace(); 66 } 67 } 68 return result; 69 }
17004.html
cjava相关文章
- 快速排序算法详细图解JAVA_实现快速排序
- java helloworld源代码_Java Hello World源代码notepad++版
- java后端开发需要什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- java 堆栈的声明_Java 堆栈[通俗易懂]
- idea连接mysql数据库报java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeExcepti
- java 取当前时间年月日_Java获取当前时间年月日的方法[通俗易懂]
- Java数组循环_java遍历object数组
- java 事务嵌套_Java事务以及嵌套事务[通俗易懂]
- Java写爬虫,你试过嘛?
- java实现网络爬虫程序demo详解编程语言
- 代码Linux下编写Java代码的指南(linux编写java)
- Linux下安装Java 开发环境指南(linux装java环境)
- Linux系统下Java软件环境搭建指导(linux java软件)
- Linux与Java结合:开启全新的编程之旅(linux java())
- Java配置Oracle实现稳定的跨平台数据库连接(java配置oracle)
- Java更新提升Oracle软件性能(java更新oracle)
- 编程玩转Java之Oracle编程实战(java中的oracle)
- Java加速Oracle开发之旅(java中oracle包)
- Redis中使用Java快速实现自增(redis自增 java)
- JAVA求两直线交点和三角形内外心的方法
- java枚举的使用示例
- 深度剖析Java中的内存原型及工作原理