先上代码String strurl="http://search.dangdang.com/?key=%BB%FA%D0%B5%B1%ED&act=input"; try { URL url=new URL(strurl); //通过url建立与网页的连接 URLConnection conn=url.openConnection(); //通过链接取得网页返回的数据 InputStream is=conn.getInputStream(); //一般按行读取网页数据,并进行内容分析 //因此用BufferedReader和InputStreamReader把字节流转化为字符流的缓冲流 //进行转换时,需要处理编码格式问题 BufferedReader br=new BufferedReader(new InputStreamReader(is)); //按行读取并打印 String line=null; while((line=br.readLine())!=null){ System.out.println(line); } br.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
结果![]() 解决方法在创建BufferedReader对象时,设置InputStreamReader对象的编码格式,如下: BufferedReader br=new BufferedReader(new InputStreamReader(is,"GB2312"));这里的编码格式要与爬取网页的charset一致,否则依旧会乱码 <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
|