两个问题:关于模拟浏览器与 curl

2015-08-17 05:19:26 +08:00
 hxndg
最近遇上这样的三个问题
1使用java 获取某网页载入速度,包括下载速度,dns查询时间等等,这种前端的东西,是不是纯java做不了?如果要做我是不是需要嵌个webkit进去?
2使用命令行curl下载网页,使用他内置的time_namelookup获得的dns查询才2ms,而看阿里测的历史记录上dns时间是80多ms,为什么?
3223 次点击
所在节点    程序员
12 条回复
hxndg
2015-08-17 05:20:04 +08:00
这确实是三个问题←_←
binux
2015-08-17 05:23:08 +08:00
1、不是,不需要
2、缓存了
SoloCompany
2015-08-17 08:40:38 +08:00
1. 载入速度怎么定义?如果你要完全模拟整个网页加载过程,包括执行 javascript,那当然需要一个浏览器引擎。java 的话有 JxBrowser (不是免费的),类似于 node webkit,当然这两个都不是小家伙
如果仅仅是做一下简单的HTML解释及资源提取来模拟网页载入,当然不需要依赖太多的东西

2. 如果不想被缓存干扰,用 dig
ljbha007
2015-08-17 09:10:27 +08:00
如果要包括javascript的载入与执行可以用phantom.js
如果仅仅是下载时间和dns查询时间 用java就行了

下载: new URL("http://www.google.com").openConnection().getInputStream()
DNS查询:InetAddress.getByName("www.google.com")
hxndg
2015-08-17 15:47:32 +08:00
@binux
1 how?
hxndg
2015-08-17 15:49:30 +08:00
@SoloCompany
实际上确实是完全模拟整个网页加载过程
binux
2015-08-17 15:55:39 +08:00
@hxndg 你举得例子,「下载速度, dns 查询时间」都不是「前端的东西」
hxndg
2015-08-17 16:08:34 +08:00
@binux
那么网页的载入速度(完全模拟整个网页加载过程),是不是纯 java 能做的?
binux
2015-08-17 16:37:57 +08:00
@hxndg 这个不能
beordle
2015-08-17 18:09:57 +08:00
@binux 搜了一下还真有的... Lobo Java
qige023
2015-08-20 01:39:38 +08:00
语言洁癖是一件浪费生命的事情,为什么一定要纯 JAVA 呢,明明一个 phantom.js 就能做的事情,而且 webkit 也是最好的浏览器引擎之一,为什么要费劲找个 JAVA 实现呢,毕竟不可能每个人都像 @SoloCompany 这样精通 JAVA 的大神,能自己写一套轮子。

再举个例子,比如我们要做一个手游 C#, Shaders , JS , Flash AS , Python , Lua , Go , Ojc , Java 全都可能要用上,因为特定领域,就是这个语言才能“更好的”解决这样的问题。
hxndg
2015-08-20 17:47:13 +08:00
@qige023 我也想用 前端,但是语言的裁定不是我能决定的。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213657

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX