惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
Engineering at Meta
Engineering at Meta
C
Check Point Blog
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 司徒正美

博客园 - 剑廿三

AirExcel -用于导出 Excel 2007 文件的 Flex AIR 组件 初版发布 Flex SQLite Batch Insert Datas from Array Flex 遍历 ArrayCollection, Array Flex SQLite: 一次执行多个SQL,查询两个表的数据,导入datagrid Flex AIR SQLite Flex AIR: 使用透明 NativeWindow 窗体呈现 Line Chart 的一个 bug (Exception in CartesianChart/updateMultipleAxesStyles) Flex AIR:用 mx:Image 实现的动态图片按钮 Flex AIR:Line Chart 示例-从 XML 原始数据运算得出增长率图表 Flex AIR:Line Chart 示例-用 XML 画图表很简单 Flex: 通过 DataGrid 操作 XML 文件 PSP 使用 Web FTP (JSP, on EeeBox) 的两项设定 PS3 的 UserAgent PSP2000 的 UserAgent Windows Vista Ultimate 上基于 IE7 的 Maxthon 2.1.5 的 UserAgent OEM正版Windows Vista Home Premium上的 IE8 的 UserAgent EeeBox B202 上基于 Windows XP Pro SP2 的 IE7 的 UserAgent EeeBox B202上基于 Windows XP Pro SP2 IE7 的 Maxthon 2.1.5 的 UserAgent OEM正版Windows Vista Home Premium上的 Firefox 3.5.5 中文版的 UserAgent OEM正版Windows Vista Home Premium上基于IE8的 Maxthon 2.5.9 的 UserAgent
Flex: 抓取网页,通过 XML 获取部分内容
剑廿三 · 2010-06-12 · via 博客园 - 剑廿三

样本程式的目的是到证券之星网站取得宇通客车52周和104周最高报价和最低报价。由于证券之星的网页格式不符合XML格式规范,故此不能把抓取回来的网页直接转换为 XML,需要先经过文本截取处理。Flex 利用 E4X 操作 XML 甚为方便。

AIR 运行效果如下图:

ClawTest.mxml 内容如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
 3                        xmlns:s="library://ns.adobe.com/flex/spark" 
 4                        xmlns:mx="library://ns.adobe.com/flex/mx">
 5 
 6     <fx:Script>
 7         <![CDATA[
 8             
 9             // “获取”按钮点击事件
10             protected function btnGet_clickHandler(event:MouseEvent):void
11             {
12                 var request:URLRequest = new URLRequest("http://quote.stockstar.com/stock/sh_600066.htm");
13                 var loader:URLLoader = new URLLoader();
14                 loader.load(request);
15                 loader.addEventListener(Event.COMPLETE,onCompleteHandler);
16             }
17             
18             // 当网页载入完毕时触发的事件
19             private function onCompleteHandler(event:Event):void
20             {
21                 // 网页内容储存在 event.target.data 里
22                 // 这个 data 既可以被封装为 String,也可以被封装为 XML
23                 // 如果这个网页的 HTML 标记不规范、不符合 XML 格式,封装为 XML 的时候就会报错
24                 var data:String = new String(event.target.data);
25                 
26                 // 第一次截取片段
27                 var begin:int = data.indexOf("<div class=\"m_foot\">");
28                 var end:int = data.indexOf("<div class=\"m_foot_more\">");
29                 var cutdiv:String = data.substring(begin,end);
30                 
31                 // 第二次截取片段
32                 begin = cutdiv.indexOf("<table width=\"97%\" ");
33                 end = cutdiv.indexOf("</table>");
34                 var cutable:String = cutdiv.substring(begin, end+8);
35                 
36                 // 转换为 XML,如果片段内容格式不符合 XML 规范,就会报错
37                 var xml:XML = new XML(cutable);
38                 
39                 // 取得想要的内容
40                 var high52:String = xml.tr[4].td[1];
41                 var low52:String = xml.tr[4].td[2];
42                 var high104:String = xml.tr[5].td[1];
43                 var low104:String = xml.tr[5].td[2];
44                 
45                 // 呈现结果
46                 this.txtBox.text = high52 + "\n" + low52 + "\n" + high104 + "\n" + low104;            
47             }
48         ]]>
49     </fx:Script>
50 
51     <fx:Declarations>
52         <!-- 将非可视元素(例如服务、值对象)放在此处 -->
53     </fx:Declarations>
54     <s:TextArea x="95" y="49" id="txtBox" editable="true" enabled="true" width="352" height="226"/>
55     <s:Button x="237" y="318" label="获取" id="btnGet" enabled="true" click="btnGet_clickHandler(event)"/>
56 </s:WindowedApplication>
57