BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #16740同步于 2010/12/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

谁能给点力

Forest0579
2010/12/7镜像同步10 回复
谁能给个简体中文的google页面啊,我用java写的得到google首页的源码是繁体的,从源代码看又是别的乱码,所有不能被我自己的浏览器(swt browser)正常显示,谁能帮忙给个代码,跪求啊 小弟先谢过了!(我操作系统默认编码时GBK)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
greedisgood机器人#1 · 2010/12/7
url里添加hl=zh-CN,得到的是简体中文。google页面编码utf8,跟操作系统没关系。让浏览器用utf8渲染,或者把google页面转成gbk,同时将head里编码替换成gbk。 够清楚了吧。
Forest0579机器人#2 · 2010/12/8
清楚是够清楚了 可是只能使用于像google这种搜索引擎首页吧 我现在做这个google只是其中一个网址而已,不能单碰到google这个网页就对他来一次这个,能不能给个通用点的方法,或者说可以直接找到能直接得到简体中文页面方法呢? 【 在 greedisgood 的大作中提到: 】 : url里添加hl=zh-CN,得到的是简体中文。google页面编码utf8,跟操作系统没关系。让浏览器用utf8渲染,或者把google页面转成gbk,同时将head里编码替换成gbk。 : 够清楚了吧。 : -- : ...................
yueyingcs机器人#3 · 2010/12/8
package a; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class HttpTest { public static void main(String[] args) throws MalformedURLException, IOException { String location="http://www.google.com"; String cookie = ""; do { HttpURLConnection conn = (HttpURLConnection) new URL(location).openConnection(); if(cookie.length() != 0) { conn.setRequestProperty("Cookie", cookie); } conn.setRequestProperty("Proxy-Connection", "Keep-Alive"); conn.setRequestProperty("Accept-Language", "zh-cn,en-us;q=0.5"); // conn.setRequestProperty("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*"); // conn.setRequestProperty("Accept-Encoding", "gzip, deflate"); conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648)"); conn.setInstanceFollowRedirects(false); int code = conn.getResponseCode(); if(code == HttpURLConnection.HTTP_MOVED_TEMP) { cookie = conn.getHeaderField("Set-Cookie") + ";"; // location=conn.getHeaderField("Location"); System.out.println(location); } if(conn.getResponseCode() == HttpURLConnection.HTTP_OK) { BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); String line=null; BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/a.html"))); while((line=reader.readLine())!=null) { writer.write(line+"\r\n"); } writer.close(); conn.disconnect(); break; } } while(true); } }
yueyingcs机器人#4 · 2010/12/8
用ie打开,编码选简体中文 或者将b.html里的charset改为gbk,直接用ie打开可以显示,就是没图像
Forest0579机器人#5 · 2010/12/8
这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我 【 在 yueyingcs 的大作中提到: 】 : 用ie打开,编码选简体中文 : 或者将b.html里的charset改为gbk,直接用ie打开可以显示,就是没图像 : -- : ...................
greedisgood机器人#6 · 2010/12/8
通用的就是选择任意一种编码打开输入流,比如utf8,down下来页面后,查找里面的charset,然后再把这个页面读进内存,用charset的编码设置输出流,导出,就Ok了。因为不论哪种编码,html页面里的英文字符都是可以正确显示的,不会影响你找charset。
greedisgood机器人#7 · 2010/12/8
【 在 yueyingcs 的大作中提到: 】 : 用ie打开,编码选简体中文 : 或者将b.html里的charset改为gbk,直接用ie打开可以显示,就是没图像 : -- : ................... 新改版的google图片是相对链接,得自己补全。
yueyingcs机器人#8 · 2010/12/9
【 在 Forest0579 的大作中提到: 】 : 这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我 : 【 在 yueyingcs 的大作中提到: 】 : : 用ie打开,编码选简体中文 : ................... 通用就得自己实现或者找spider之类的了。
Forest0579机器人#9 · 2010/12/9
好吧 谢谢了 【 在 yueyingcs 的大作中提到: 】 : : 这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我 : : 【 在 yueyingcs 的大作中提到: 】 : : : 用ie打开,编码选简体中文 : ...................