• 关于 抓取商品 的搜索结果

问题

采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功

城市劣人 2019-12-01 21:01:34 16667 浏览量 回答数 9

回答

Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 这个是读取的一个日志文件,里面包含获取到的html信息 不过打开后,会跳转到tmall的登录页面 ------------------------- Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 task-analyze.zip 是部署在阿里云上用Jsoup抓取到的一个店铺一页的商品信息。 但是发现里面抓取的内容不全,没有抓到它的分页数:1/25;商品信息也不存在了,保存为html,发现跳转到登录页面了 但是如果在本地部署是可以的,我找了另外一家的服务器(是windows的),也是能正常抓取到的。 ------------------------- 回1楼理财砖家的帖子 DNS都是OK的 ------------------------- ReRe采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 引用第5楼城市劣人于2014-09-01 13:29发表的 Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 : task-analyze.zip 是部署在阿里云上用Jsoup抓取到的一个店铺一页的商品信息。 但是发现里面抓取的内容不全,没有抓到它的分页数:1/25;商品信息也不存在了,保存为html,发现跳转到登录页面了 但是如果在本地部署是可以的,我找了另外一家的服务器(是windows的),也是能正常抓取到的。 补充抓取的地址是:抓取的地址是:http://osa.tmall.com/search.htm?&search=y&orderType=newOn_asc&tsearch=y ------------------------- Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 咨询了阿里云技术售后客服,说阿里云服务器是没有限制的。 难道是centos系统,对抓取这一块 有什么特殊的权限吗? ------------------------- 回9楼bendchen的帖子 怎么操作法? ------------------------- 回11楼啊里新人的帖子 本地还没有环境测试,难道真的是环境问题 除了Jsoup抓取之外,有没有好的推荐? ------------------------- 回15楼千鸟的帖子 抓取到的html保存为文本,就是少了中间商品列表那部分,在4楼有附件 ------------------------- Re回12楼城市劣人的帖子 引用第13楼啊里新人于2014-09-11 18:09发表的 回 12楼(城市劣人) 的帖子 : jsoup解析数据比较好用,采集数据,我之前用的httpclient httpclient 有抓取整个页面数据的简单例子吗?只要能抓取到,再用jsoup解析数据 ------------------------- Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 最新进展,ECS是在杭州可用区B(发现有这个问题),后来在C、D区部署测试了,就没有这个现象了。 后续抓取JD的数据测试了一下,B区也是能正常抓取的。 奇怪的是为什么在B区就不能抓取淘宝的数据呢? 程序是一样的     protected static WebClient getWebClient() {         if (wc == null) {             /** HtmlUnit请求web页面 */             wc = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);             wc.getOptions().setJavaScriptEnabled(true); // 启用JS解释器,默认为true             wc.getOptions().setUseInsecureSSL(true);             wc.getOptions().setCssEnabled(false); // 禁用css支持             wc.getOptions().setActiveXNative(false);             wc.getOptions().setThrowExceptionOnScriptError(false); // js运行错误时,是否抛出异常             wc.getOptions().setThrowExceptionOnFailingStatusCode(false);             wc.waitForBackgroundJavaScript(10 * 1000);             wc.setJavaScriptTimeout(5000);             wc.getOptions().setTimeout(10000); // 设置连接超时时间 ,这里是10S。如果为0,则无限期等�?             wc.getOptions().setDoNotTrackEnabled(false);             wc.setAjaxController(new NicelyResynchronizingAjaxController());         }         return wc;     } page = getWebClient().getPage(url); String pageXml = page.asXml(); /** jsoup解析文档 */ Document doc = Jsoup.parse(pageXml, "http://aizhizao.tmall.com"); Elements listDiv = doc.getElementsByAttributeValue("class", "ui-page-s-len"); System.out.println(listDiv.html());

城市劣人 2019-12-02 00:16:48 0 浏览量 回答数 0

回答

本人最近在尝试网页抓取,发现当当店铺的商品列表页面每次请求的结果都不相同。 举个例子:韩都衣舍 = http://shop.dangdang.com/4609/list.html。 多次请求这个地址会发现每次的商品页数可能不同,源码也不同。实际结果就是明明应该有几十页的内容,却只显示有几页。这是什么原因导致呢?因为我是通过页面内的下一页来抓取下一页内容,这样的话必然导致抓取不足,甚至有时候明明下一页是第三页,却显示了第一页的内容,望解答,谢谢。PS:可能表达不清,如需细节再补充

杨冬芳 2019-12-02 02:51:35 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

问题

同一请求地址两次的网页显示不同,源码也不一致

杨冬芳 2019-12-01 20:03:16 808 浏览量 回答数 1

回答

Re抓取1688产品老跳到登录画面怎么解决 能顺利用1688 商品链接抓取到信息的 大神 分享下解决方法 谢谢

城城1234 2019-12-02 00:53:43 0 浏览量 回答数 0

回答

Re抓取1688产品老跳到登录画面怎么解决 能顺利用1688 商品链接抓取到信息的 大神 分享下解决方法 谢谢

城城1234 2019-12-02 00:53:43 0 浏览量 回答数 0

问题

基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件 请求报错

kun坤 2020-05-28 16:03:29 4 浏览量 回答数 1

问题

如何抽取生成mahout可用的数据集

二次源 2019-12-01 19:36:43 337 浏览量 回答数 1

回答

etao 会事先提高一个规则给各个商城 , 各个商城根据ETAO 的规则 来生成了一些XML 文件  ETAO 来抓取商家指定位置的 XML  XML 包括全部商品XML 增量 XML(产品的修改)  等等 你可以在OPEN.ETAO.COM 上面申请个帐号 他提供的有文档 ######恩,它这个XML只对小电商有用吧。但是像亚马逊、京东也吃一淘这一套??###### 很多电商是有接口的,应该是借口吧, 至于人家为什么愿意提供接口。。。不知道,商业范畴 ######应该是正则。之前京东屏蔽etao抓取价格的时候就是多加了一个div######不是图片化了吗######恩,你的回复也很有用~~多谢######真是多谢三位的回复~~   ###### 我以前分析过的,好几个电商的价格是另外一个请求 你只需要把你要的商品的id获取到,然后保存下来,每次去遍历请求这些价格地址就行了 因此我觉得一淘应该不是去读取他的网页的,都是异步加载,那么多商品不好去抓取 很有可能是电商开放一部分商品给一淘 一楼说的好像是的,一淘有个开放平台,以前看过,不过我觉得那个做法应该是很小的电商会做,京东这些,无法得知 ######回复 @唐明星 : ETAO 给京东 当当代去的是流量, 你说他有闲情没有!######回复 @唐明星 : 那么它是如何从页面里分析出价格信息的,如果用正则来分析,当页面变化时岂不又要重写正则来匹配?######回复 @唐明星 : 呵呵。。淡定~~表这么火~~######回复 @唐明星 : 好吧,咱们都是在YY,反正我不知道一淘怎么做的,如果我是一淘老板,我不会这么去做。######回复 @ylmotol7 : 这就是行业自律了,人家只说不希望你来爬,如果非要爬,名声就败坏了###### 引用来自“朱坤朋”的答案 应该是正则。之前京东屏蔽etao抓取价格的时候就是多加了一个div 应该是有两手准备把,一边开放规则,不接受就直接页面抓取 ###### ######回复 @杨松坤 : (⊙o⊙)…。。。我没有说我要用PHP来做呀!我表示惊讶!###### @fc_lamp PHP,我没用过,但对你这个话题,很感兴趣的###### @fc_lamp 是的。######这是表示关注吗?###### 1l  回答正确,我是做电商运维的, 一般根据 etao 提供的规则,定时生成xml 文件,来供etao 抓取的。 ######亚马逊 也会给一淘提供XML?? 不会吧?###### 引用来自“葱油拌面”的答案 1l  回答正确,我是做电商运维的, 一般根据 etao 提供的规则,定时生成xml 文件,来供etao 抓取的。 上面也有人回答过了,类似京东等大的电商,是不允许你去抓取数据的,所以更不可能提供xml ######不可能经常变样式吧~

kun坤 2020-06-08 11:25:43 0 浏览量 回答数 0

问题

码栈,对评价的获取的哪些事。

码栈小助手 2019-12-01 21:49:42 3582 浏览量 回答数 0

问题

关于鹿班的使用

1659441123303826 2019-12-01 19:03:49 3499 浏览量 回答数 2

问题

一淘是如何抓取分析电商网页的?:报错

kun坤 2020-06-06 11:47:02 3 浏览量 回答数 1

问题

交易管理聚划算活动实时监控和分析

风影66 2019-12-01 21:22:30 2405 浏览量 回答数 1

问题

业务实时监控服务 ARMS 快速接入如何实现?

猫饭先生 2019-12-01 21:24:01 1443 浏览量 回答数 0

问题

【重磅福利来袭】天猫Alikey杩栈专区起航

管理贝贝 2019-12-01 22:05:48 2336 浏览量 回答数 0

问题

如何选择一款web漏洞扫描器

elinks 2019-12-01 21:15:22 7018 浏览量 回答数 0

问题

业务实时监控服务 ARMS名词应该如何解释?

猫饭先生 2019-12-01 21:24:00 983 浏览量 回答数 0

问题

业务实时监控服务 ARMS是什么?

猫饭先生 2019-12-01 21:23:58 1710 浏览量 回答数 0

回答

虽然我不是Python高手,但我是零基础,之前会的都是软件PS,PPT之类。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 如果目的是想成为程序员,参考教学大纲。 如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用: 1,找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过) 2,做些简单习题,字符串比较,读取日期之类PythonCookbook不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学) 3,加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间。耐心指教我的好人,超级超级多谢。 4,解决自己电脑问题。比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1读取全部下载文件名,2提取集的数字,3数字排序和(1--12)对比,找出漏下的。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 5,时刻记住目的,不是为了当程序员,是为了解决问题。比如,想偷懒抓网页内容,用urllib不行,用request也不行,才发现抓取内容涉及那么多方面(cookie,header,SSL,url,javascript等等),当然可以听人家劝,回去好好读书,从头读。 或者,不求效率,只求解决,用ie打开网页再另存为行不行?ie已经渲染过全部结果了。 问题变成:1--打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数outHTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据。简单吧?而且代码超级短。 6,保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。 7,耐心读文档,并且练习快速读文档。拿到新包,找到自己所需要的函数,是需要快速读一次的。这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的。 8,写帮助文件和学习笔记,并发布共享。教别人的时候,其实你已经自己再次思考一次了。 我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件。 然后点点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd是很好用的。 然后,坚持下去~ 6月10日补充------------------------------ 一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深。 网络很平面,无数国际大牛著作好书,关于Python,算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去,不是难事。 所有天才程序员,都曾是儿童,回到儿童思维来理解和学习。觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好。 唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它。虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去。坚持学好一门语言,再研究其他。 即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情。 另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询。 python里,看到Http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,wiki,google很有用。 我还在使劲啃Python的路上~~一起加油:) 2012年8月26日补充线------------------------------------------------------------------ QQ群:22507237陆续有些高手走了,也有新人加入。 另外10月20日,上海有Python开发者大会, 给出2个截图吧,我最近做的,真的很烂,但是能用:) 这个是上次Python测试题目“从电商网站的搜索页中抓取制作商品图片墙”。我选了最最容易的静态网站。当然京东的抓取,比这种难。 这个很方便我自己每天查询,用Python3+PyQt4,用“公司名字”关键词,在各个论坛,图片,视频,商场查询。每天看一次,很方便快速了解信息。 1.如果是因为兴趣,想做些比较漂亮的网页或者做些特别的、能帮到自己的小程序,可以直接买市面上的大部分Python教材,直接从Python学起,学实际的编程。Python并不难学,最初设计的时候就力图规避一些C、C++等等程序让入门者头大的内容,而且库函数也比较丰富,语法相对清晰直白,不会故意做一些高效率但是难弄懂的东西。而且相对语法要求(尤其是缩进==)比较严比较死,虽然你会觉得麻烦,不过确实易读而且省的粗心犯错。 2.如果是想从事编程的职业,建议还是循序渐进的来,单纯只学语言比较浅,还是从数据结构、离散数学、算法一步一步来比较好。这样学确实很枯燥,但是基础比较好,可塑性强些,再学其他算法和语言都方便不少,而且读好的源码理解的更透更深。真正专业性的学习和兴趣式的尝试差别还是很大的,要真的非常感兴趣肯吃苦才行,虽然经常看到有很多人在报考或者转入这方面的专业,不过说实话急着跳出去的一样不少。 实际上,要把一段代码编程直观的产品、工具,远远没有你想像的那么难,与其他东西的学习一样都是模仿加重复性练习,不过是非专业的人接触的少所以觉得编程特别难。现在编程语言和工具越来越多,发展很快,编程的门槛已经降低了很多了。只是相对来说,精通很难,非常难。。。 我的朋友问我怎么能快速地掌握Python。我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的,类似于w3cschool风格的Python教程,一方面保持言语的简洁,另一方面循序渐进,尽量让没有背景的读者也可以从基础开始学习。另外,我在每一篇中专注于一个小的概念,希望可以让人在闲暇时很快读完。?  学好python你需要一个良好的环境,一个优质的开发交流群,群里都是那种相互帮助的人才是可以的,我有建立一个python学习交流群,在群里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,群号是304加上050最後799,这样就可以找到大神聚合的群,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。 感觉写的好,对你有帮助,就点个赞呗,别光只收藏哈.~( ̄▽ ̄)~ ?

爱吃鱼的程序员 2020-06-08 17:59:21 0 浏览量 回答数 0

回答

转自:思否 本文作者:Michael van der Gulik 原文链接:《Why WebAssembly is a big deal》 译者:敖小剑 WebAssembly 是每个程序员都应该关注的技术。WebAssembly 会变得更流行。 WebAssembly 将取代 JavaScript。WebAssembly 将取代 HTML 和 CSS。 WebAssembly 将取代手机应用。WebAssembly 将取代桌面应用。在 10 年内,我保证每个程序员至少需要知道如何使用工具来操作 WebAssembly 并理解它是如何工作的。 你可能会说,“太离谱了!” 好吧,请继续阅读。 什么是 WebAssembly 当前形式的 WebAssembly 是 Web 浏览器的新扩展,可以运行预编译代码…快速地。在 C ++ 中编写了一些小代码,然后使用 Emscripten 编译器将该代码编译为 WebAssembly。通过一些 Javascript 粘合,就可以在 Web 浏览器中调用这一小段代码,例如,运行粒子模拟。 WebAssembly 文件,扩展名为.wasm,本身是包含可执行指令的二进制格式。要使用该文件,必须编写一个运行某些 Javascript 的 HTML 文件来获取、编译和执行 WebAssembly 文件。WebAssembly 文件在基于堆栈的虚拟机上执行,并使用共享内存与其 JavaScript 包装器进行通信。 到目前为止,这似乎并不有趣。它看起来只不过是 JavaScript 的加速器。但是,聪明的读者会对 WebAssembly 可能成为什么有所了解。 WebAssembly 将成为什么? 第一个重要发现是 WebAssembly 是一个安全的沙盒虚拟机。可以从 Internet 运行喜欢的 WebAssembly 代码,而确保它不会接管 PC 或服务器。四个主流 Web 浏览器对它的安全性非常有信心,它已经默认实现并启用了。它的真正安全性还有待观察,但安全性是 WebAssembly 的核心设计目标。 第二个重要发现是 WebAssembly 是一个通用的编译目标。它的原始编译器是一个 C 编译器,这个编译器很好地指示了 WebAssembly 虚拟机的低级和可重定向性。许多编程语言都使用 C 语言编写虚拟机,其他一些语言甚至使用 C 本身作为编译目标。 此时,有人整理了一个可以编译为 WebAssembly 的编程语言列表。这份名单将在未来很多年中继续增长。 WebAssembly 允许使用任何编程语言编写代码,然后让其他人在任何平台上安全地运行该代码,无需安装任何内容。朋友们,这是美好梦想的开始。 部署问题 我们来谈谈如何将软件提供给用户。 为新项目选择编程语言的一个重要因素是如何将项目部署到客户。您的程序员喜欢用 Haskell,Python,Visual Basic 或其他语言编写应用程序,具体取决于他们的喜好。要使用喜欢的语言,他们需要编译应用,制作一些可安装的软件包,并以某种方式将其安装在客户端的计算机上。有许多方法可以提供软件 - 包管理器,可执行安装程序或安装服务,如 Steam,Apple App Store,Google Play 或 Microsoft store。 每一个安装机制都意味着痛苦,从应用商店安装时的轻微疼痛,到管理员要求在他的 PC 上运行一些旧的 COBOL 代码时的集群头痛。 部署是一个问题。对于开发人员和系统管理员来说,部署一直是一个痛点。我们使用的编程语言与我们所针对的平台密切相关。如果大量用户在 PC 或移动设备上,我们使用 HTML 和 Javascript。如果用户是 Apple 移动设备用户,我们使用……呃…… Swift?(我实际上不知道)。如果用户在 Android 设备上,我们使用 Java 或 Kotlin。如果用户在真实计算机上并且愿意处理掉他们的部署问题,那么我们开发人员才能在我们使用的编程语言中有更多选择。 WebAssembly 有可能解决部署问题。 有了 WebAssembly,您可以使用任何编程语言编写应用,只要这些编程语言可以支持 WebAssembly,而应用可以在任何设备和任何具有现代 Web 浏览器的操作系统上运行。 硬件垄断 想购买台式机或笔记本电脑。有什么选择?好吧,有英特尔,有 AMD。多年来一直是双寡头垄断。保持这种双寡头垄断的一个原因是 x86 架构只在这两家公司之间交叉许可,而且通常预编译的代码需要 x86 或 x86-64(也就是 AMD-64)架构。还有其他因素,例如设计世界上最快的 CPU 是一件很艰难但也很昂贵的事情。 WebAssembly 是一种可让您在任何平台上运行代码的技术(之一)。如果它成为下一个风口,硬件市场将变得商品化。应用编译为 WebAssembly,就可以在任何东西上运行 - x86,ARM,RISC-V,SPARC。即便是操作系统市场也会商品化;您所需要的只是一个支持 WebAssembly 的浏览器,以便在硬件可以运行时运行最苛刻的应用程序。 编者注:Second State 研发的专为服务端优化的 WebAssembly 引擎 SSVM 已经可以运行在高通骁龙芯片上。Github 链接:https://github.com/second-sta... 云计算 但等等,还有更多。云计算成为IT经理办公室的流行词已有一段时间,WebAssembly 可以直接迎合它。 WebAssembly 在安全沙箱中执行。可以制作一个容器,它可以在服务器上接受和执行 WebAssembly 模块,而资源开销很小。对于提供的每个服务,无需在虚拟机上运行完整的操作系统。托管提供商只提供对可以上传代码的WebAssembly 容器的访问权限。它可以是一个原始容器,接收 socket 并解析自己的 HTTP 连接,也可以是一个完整的 Web 服务容器,其中 WebAssembly 模块只需要处理预解析的HTTP请求。 这还不存在。如果有人想变得富有,那么可以考虑这个想法。 编者注:目前已经有人正在实现这个想法,Byte Alliance 计划将WebAssembly 带到浏览器之外,Second State 已经发布了为服务端设计的WebAssembly 引擎开发者预览版。 不是云计算 WebAssembly 足以取代 PC 上本地安装的大多数应用程序。我们已经使用 WebGL(又名OpenGL ES 2.0)移植了游戏。我预测不久之后,受益于WebAssembly,像 LibreOffice 这样的大型应用可以直接从网站上获得,而无需安装。 在这种情况下,在本地安装应用没什么意义。本地安装的应用和 WebAssembly 应用之间几乎没有区别。WebAssembly 应用已经可以使用屏幕,键盘和鼠标进行交互。它可以在 2D 或 OpenGL 中进行图形处理,并使用硬件对视频流进行解码。可以播放和录制声音。可以访问网络摄像头。可以使用 WebSockets。可以使用 IndexedDB 存储大量数据在本地磁盘上。这些已经是 Web 浏览器中的标准功能,并且都可以使用 JavaScript 向 WebAssembly 暴露。 目前唯一困难的地方是 WebAssembly 无法访问本地文件系统。好吧,可以通过 HTML 使用文件上传对话,但这不算。最终,总会有人为此创建 API,并可能称之为 “WASI”。 “从互联网上运行应用程序!?胡说八道!“,你说。好吧,这是使用 Qt 和 WebAssembly 实现的文本编辑器 (以及更多)。 这是一个简单的例子。复杂的例子是在 WebBrowser 中运行的 Adobe Premier Pro 或 Blender。或者考虑像 Steam 游戏一样可以直接从网络上运行。这听起来像小说,但从技术上说这并非不能发生。 它会来的。 让我们裸奔! 目前,WebAssembly 在包含 HTML 和 Javascript 包装器的环境中执行。为什么不脱掉这些?有了 WebAssembly,为什么还要在浏览器中包含 HTML 渲染器和 JavaScript 引擎? 通过为所有服务提供标准化 API,这些服务通常是 Web 浏览器提供的,可以创建裸 WebAssembly。就是没有 HTML和 Javascript 包装来管理的 WebAssembly。访问的网页是 .wasm 文件,浏览器会抓取并运行该文件。浏览器为WebAssembly 模块提供画布,事件处理程序以及对浏览器提供的所有服务的访问。 这目前还不存在。如果现在使用 Web 浏览器直接访问 .wasm 文件,它会询问是否要下载它。我假设将设计所需的 API 并使其工作。 结果是 Web 可以发展。网站不再局限于 HTML,CSS 和 Javascript。可以创建全新的文档描述语言。可以发明全新的布局引擎。而且,对于像我这样的 polyglots 最相关,我们可以选择任何编程语言来实现在线服务。 可访问性 但我听到了强烈抗议!可访问性怎么样??搜索引擎怎么办? 好吧,我还没有一个好的答案。但我可以想象几种技术解决方案。 一个解决方案是我们保留内容和表现的分离。内容以标准化格式编写,例如 HTML。演示文稿由 WebAssembly 应用管理,该应用可以获取并显示内容。这允许网页设计师使用想要的任何技术进行任意演示 - 不需要 CSS,而搜索引擎和需要不同类型的可访问性的用户仍然可以访问内容。 请记住,许多 WebAssembly 应用并不是可以通过文本访问的,例如游戏和许多应用。盲人不会从图像编辑器中获得太多好处。 另一个解决方案是发明一个 API,它可以作为 WebAssembly 模块,来提供想在屏幕上呈现的 DOM,供屏幕阅读器或搜索引擎使用。基本上会有两种表示形式:一种是在图形画布上,另一种是产生结构化文本输出。 第三种解决方案是使用屏幕阅读器或搜索引擎可以使用的元数据来增强画布。执行 WebAssembly 并在画布上呈现内容,其中包含描述渲染内容的额外元数据。例如,该元数据将包括屏幕上的区域是否是菜单以及存在哪些选项,或者区域是否想要文本输入,以及屏幕上的区域的自然排序(也称为标签顺序)是什么。基本上,曾经在 HTML 中描述的内容现在被描述为具有元数据的画布区域。同样,这只是一个想法,它可能在实践中很糟糕。 可能是什么 1995年,Sun Microsystems 发布了 Java,带有 Java applets 和大量的宣传。有史以来第一次,网页可以做一些比 和 GIF 动画更有趣的事情。开发人员可以使应用完全在用户的 Web 浏览器中运行。它们没有集成到浏览器中,而是实现为繁重的插件,需要安装整个 JVM。1995年,这不是一个小的安装。applets 也需要一段时间来加载并使用大量内存。我们现在凭借大量内存,这不再是一个问题,但在 Java 生命的第一个十年里,它让体验变得令人厌烦。 applets 也不可靠。无法保证它们会运行,尤其是在用户使用 Microsoft 的实现时。他们也不安全,这是棺材里的最后一颗钉子。 以 JVM 为荣,其他语言最终演变为在 JVM 上运行。但现在,那艘船航行了。 FutureSplash / Macromedia / Adobe Flash 也是一个竞争者,但是是专有的,具有专有工具集和专有语言的专有格式。我读到他们确实在2009年开启了文件格式。最终从浏览器中删除了支持,因为它存在安全风险。 这里的结论是,如果希望您的技术存在于每个人的机器上,那么安全性就需要正视。我真诚地希望 WebAssembly 作为标准对安全问题做出很好的反应。 需要什么? WebAssembly 仍处于初期阶段。它目前能很好的运行代码,而规范版本是 1.0,二进制格式定型。目前正在开展SIMD 指令支持。通过 Web Workers 进行多线程处理也正在进行中。 工具可用,并将在未来几年不断改进。浏览器已经让你窥视 WebAssembly 文件。至少 Firefox 允许查看WebAssembly 字节码,设置断点并查看调用堆栈。我听说浏览器也有 profiling 支持。 语言支持包括一套不错的语言集合–C,C++和Rust是一流的公民。C#,Go和Lua显然有稳定的支持。Python,Scala,Ruby,Java和Typescript都有实验性支持。这可能是一个傲慢的陈述,但我真的相信任何想要在21世纪存在的语言都需要能够在 WebAssembly 上编译或运行。 在访问外部设备的 API 支持方面,我所知道的唯一可用于裸 WebAssembly 的 API 是 WASI,它允许文件和流访问等核心功能,允许 WebAssembly 在浏览器外运行。否则,任何访问外部世界的 API 都需要在浏览器中的 Javascript 中实现。除了本地机器上的文件访问,打印机访问和其他新颖的硬件访问(例如非标准蓝牙或USB设备)之外,应用所需的一切几乎都可以满足。“裸WebAssembly”并不是它成功的必要条件; 它只是一个小的优化,不需要浏览器包含对 HTML,CSS 或 Javascript 的支持。 我不确定在桌面环境中让 WebAssembly 成为一等公民需要什么。需要良好的复制和粘贴支持,拖放支持,本地化和国际化,窗口管理事件以及创建通知的功能。也许这些已经可以从网络浏览器中获得; 我经常惊讶与已经可能的事情。 引发爆炸的火花是创建允许现有应用移植的环境。如果创造了“用于 WebAssembly 的 Linux 子系统”,那么可以将大量现有的开源软件移植到 WebAssembly 上。它需要模拟一个文件系统 - 可以通过将文件系统的所有只读部分都缓存为 HTTP 请求来完成,并且所有可写部分都可以在内存中,远程存储或使用浏览器可以提供的任何文件访问。图形支持可以通过移植 X11 或 Wayland 的实现来使用 WebGL(我理解已经作为 AIGLX 存在?)。 一些 SDL 游戏已经被移植到 WebAssembly - 最着名的是官方演示。 一旦 JVM 在 WebAssembly 中运行,就可以在浏览器中运行大量的 Java 软件。同样适用于其他虚拟机和使用它们的语言。 与 Windows 软件的巨大世界一样,我没有答案。WINE 和 ReactOS 都需要底层的 x86 或 x86-64 机器,所以唯一的选择是获取源代码并移植它,或者使用 x86 模拟器。 尾声 WebAssembly 即将到来。 它来得很慢,但现在所有的部分都可以在你正在使用的浏览器上使用。现在我们等待构建用于从各种编程语言中定位 WebAssembly 的基础设施。一旦构建完成,我们将摆脱 HTML,CSS 和 Javascript 的束缚。 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区

茶什i 2020-01-07 10:32:35 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播