2006-01-08

ASP远程数据获取程序的入门教程

出处:中国X黑客小组[ 2005-12-30 10:36:39 ]

http://www.pconline.com.cn/pcjob/process/other/others/0512/732820.html

这里所说的“小偷”指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序。你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用。“小偷”的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省大量的服务器资源,一般小偷程序就几个文件,所有网页内容都是来自其他网站。缺点在于:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么小偷程序也要进行相应修改;速度,因为是远程调用,速度和在本地服务器上读取数据比起来,肯定要慢一些。怎么样,听起来很神奇吧?我们现在就开始来学习一些“小偷”程序的入门知识吧!

  我们拿个简单点的东西来研究一下吧,QQ网站上的天气预报程序代码如下:

’以下即为页面显示部分

“)

  ’这里设置需要处理的数据的头部,这个变量应视不同情况而设置,具体内容可以通过查看需要抓取的页面的源代码来确定。因为在这个程序里我们需要抓取整个页面,所以设置为页面全部抓取。注意,设置的内容必须是页面内容唯一的,不可以重复。

over=Newstring(wstr,” “)

’和start相对应的就是需要处理的数据的尾部,同样的,设置的内容必须是页面中唯一的。

body=mid(wstr,start,over-start)

’设置显示页面的范围

’下面就是动用乾坤挪移+++的时候了,通过replace可以用一些字符替换掉数据中指定的字符。

body = replace(body,”skin1″,”天气预报 – 斯克网络”)
body = replace(body,”http://appnews.qq.com/cgi-bin/news_qq_search?city”,”tianqi.asp?id”)
’本程序中已经完成了替换的工作,如果有其他需要的话可以继续进行类似的替换操作。

response.write body

%>

  替换完需要修改的内容后,就可以把修改的内容显示在页面上了。至此程序结束

  程序使用方法及结果:把上述代码去掉说明部分后保存为tianqi.asp,上传到支持ASP和XML的空间下,在浏览器中运行即可。你可以在在这个程序的基础上进行进一步的界面美化或者程序优化。

  以上只是一些关于XMLHTTP组件的初级应用,实际上它还能实现的功能还有很多,比如说保存远程图片到本地服务器上,配合adodb.stream组件可以把获取来的数据保存进数据库。小偷的作用和使用范围都很广。但是不可以拿来做违法的事哦!

  也许还有人要问了,这种“小偷”程序难道只是ASP的专利吗?非也,PHP通过fopen函数一样可以实现同样的效果,由于PHP本身的各种特点,写出来的小偷程序和ASP相比,在体积和执行效率上都有者明显的优势,但限于篇幅,这里就不一一说明了。

[转]关于工作流,从“Hello World”谈起…

我们学习C,C++,java这类语言时,第一个入门程序一般都是“Hello World”。
这个经典的“Hello World”程序虽然简单,但也一样能说明很多问题,这里我尝试用它来说明“为啥企业应用需要引入业务流程概念和相关的业务流程引擎”。

1、我们先从C的Hello World开始:(不会汇编语言,否则先来一个汇编实现的“Hello World” 8)
[code]
int main(int argc,char * argv[]){
return printf("Hello world!\n");
}
[/code]
C是过程语言,上面这个直接就打印“Hello world”,程序结构不好,下面这个好点:
[code]
void main(int argc,char * argv[]){
sayHello();
}

void sayHello(){
printf("Hello world!\n");
}
[/code]

2、再看看如果是使用OO语言(C++或Java),这个Hello World是如何的。下面以java为例:
[code]
public class Person{
private String name;
public Person(String name){
this.name = name;
}
public void sayHello(){
System.out.println(name+" hello world !");
}
//
public static void main(){
new Person("张三").sayHello();
}
}
[/code]

OO语言的Hello World当然可以写成像过程语言一样,但这样的话不能发挥OO语言建模的优势,所以我们稍微写的复杂了点,多了一个Person对象,最后main里的一句就很清晰了:“张三说Hello”。

3、上面是张三一个人大喊“Hello World”,假设张三开了一公司,每天早上8:00一上班要带着他的一帮员工喊“Hello World”,这个程序乍写?
试着用java写一个(主要部分):
[code]
...
public static void main(){
Company company = new Company("张三实业有限公司");
company.getBoss().sayHello();
company.getAllEmploy().sayHello();
}
...
[/code]
到目前为止还不错,我们还能轻松解决。

半年以后,张三的公司业务发展,部门增加了。现在每天的“Hello World”流程是这样的:
:shock: 总经理先带着各部门经理喊”Hello world”,然后各部门经理回各部门带部门员工喊。
这还不够,因为现在管理也加强了 :evil: 。喊完之后,上级领导要“审批”一下,不满意的,大家要重喊,直到通过为止。

如果我们再用上面的方式来实现,可以预见的是:因为多个部门,会需要在程序流程中加入一些循环(for)或嵌套,还要加入一些判断(if-else/while)来实现审批。

这样写出的程序已经很难一眼看出它所建模的真实世界了。

同时,我们也会头痛的想到:如果“张三实业有限公司”明年变成一个“全球500强”跨国公司,这个“Hello world”流程还指不定会复杂到啥程度去?!

这时我们如果引入一个带图形定义工具的业务流程(或工作流)软件的话,解决方案是这样的了:
[code]
...
public static void main(){
Company company = new Company("张三实业有限公司");
company.startProcess("HelloWorld");
}
...
[/code]
下面是这个HelloWorld流程(省略了各部门流程,使用Joinwork的建模工具画的):
………[img]http://www.joinwork.net/tec_image/HelloWorld.JPG[/img]

引入业务流程后,我们新的[b]企业级[/b]Hello World有这些好处:

1、更清晰、直观地建模了有多人协作活动的真实客观世界;
—— 这一点非常重要。OO语言相对过程语言为啥更好? 最重要的就是OO语言对现实世界的建模能力更强了。一般商业工作流软件都基于Petri网理论来对流程建模,专门用于流程建模的Petri网能描述的流程模式(比如隐式分叉)有一些是其他建模方法不能做到的。
:arrow: 另外,如果建好的模型不能图形化展现,哪这第一点的好处就要大打折扣了。

2、建模本身就是实现。
—— UML也能给业务流程建模,可UML描述的模型还需要语言实现,这就很不方便了。几乎所有的流程软件,在建模完成之后,都有配套的流程引擎直接解释执行。

3、能用一致的语言描述业务流程
——OO有一套完整的语义:对象、继承、多态、重载等,流程也一样:流程模板、实例、任务、活动、参与者等。使用这些描述流程的语言,开发人员和一般业务分析人员更容易交流。

4、业务流程逻辑与程序逻辑的分离
——原来需要if-else/for等程序逻辑来实现的业务逻辑,现在通过分离的流程建模语言(XPDL等)来实现,这些建模语言一般还有图形化的工具。分离带来的好处是:可以不改或者少改程序逻辑,只要更改流程模型就可以满足经常变化的业务流程。

:idea: 总结一哈:

上面的Hello World程序从“打印Hello”、“说Hello”、“一个人说Hello”、“多个人按一定规则说Hello”,实现的内容和形式,不仅越来越接近现实世界,而且越来越接近现实社会。随着问题的深入扩大,我们需要理解更多的概念和掌握更强大的工具(过程语言、java/C++、流程引擎)。

2006-01-06

http://search.blogger.com/

无敌的search
☞ 回覆版 ☜
大家好
欢迎访问
偶的space
纯粹在摸索
进步中
不过都是COPY
谢谢访问
just for test
大臉娃娃符號表

  01.  <( ̄︶ ̄)>    02.  <( ̄︶ ̄)/     03.   b( ̄▽ ̄)d    04. 汗( ̄口 ̄)!!

  05. ╮( ̄▽ ̄)╭   06. ╰( ̄▽ ̄)╭    07.  ╮( ̄﹏ ̄)╭   08.   ( ̄▽ ̄@)

  09. ○( ̄﹏ ̄)○   10.  <( ̄oo, ̄)/    11.  ╮( ̄▽ ̄")╭  12. ︿( ̄︶ ̄)︿

  13.  /( ̄▽ ̄)♂   14.  /( ̄▽ ̄)♀    15. ╭( ̄m ̄*)╮   16. ╰( ̄▽ ̄)╯

  17.  <(@ ̄︶ ̄@)>  18.  帥( ̄▽ ̄)σ"  19.  羞(# ̄▽ ̄#)   20.  ( ̄Q ̄)╯

  21. 漲( ̄︶ ̄)↗   22.  跌(┬_┬)↘   23.  <( ̄ c ̄)y▂ξ 24. ε( ̄□ ̄)3||

  25. ╮(╯▽╰)╭   26.  ╮(╯_╰)╭    27.  ╮(﹀_﹀")╭   28. ╰(‵□′)╯

  29.  (#-.-)/ 30.   (︶︿︶)=凸   31.  (((‵□′))怒  32. ╭(─╴─)╮

  33. ˋ(′~‵")ˊ  34. ˋ(′o‵")ˊ    35.  ˋ(′ε‵")ˊ  36.  \(╯▼╰)/

  37. ┐(─__─)┌   38.  <(‵^′)>氣!   39.  ┌(‵▽′)╭   40. #(┬_┬)泣!

  41.  <( ̄︶ ̄)> <( ̄︶ ̄)><( ̄︶ ̄)>   42.  <( ̄︶ ̄)/<( ̄︶ ̄)/<( ̄︶ ̄)/

  43.  看拳o(╬ ̄皿 ̄)=○# ( ̄#)3 ̄)     44.  K.O <(o一-一)=○# ( ̄#)3 ̄)

  45.   (╯‵□′)╯︵ ┴─┴ 翻桌啦!    46.  翻桌啦! ┴─┴ ︵ ╰(‵□′╰)

  47. ╭∩╮( ̄▽ ̄)╭∩╮你有沒有搞錯!  48.  哼.哼.哼 <(︶︿︶)_╭∩╮╭∩╮

  49.  \("▔□▔)/\("▔□▔)/\("▔□▔)/ 50.  ~( ̄▽ ̄)~( ̄▽ ̄)~爽到不行~

  51.  ~( ̄3 ̄)~(︺ε﹀)~( ̄3 ̄)~快送醫! 52.  無影腳<(  ̄^ ̄)︵θ︵θ☆( >_<)

  53.  笨蛋<( ‵□′)───Cε(┬_┬)3  54.  夾!<( ‵□′)───C<─___-)||

  55. ╭ (′▽`)╭(′▽`)╭(′▽`)╯Go!  56.  ︿( ̄︶ ̄)︽( ̄︶ ̄)︿飛.飛.飛.

  57.  兇手!兇手就是你! <( ̄﹌ ̄)@m      58.  我..我..是大豬頭╭(﹊∩∩﹊#)╮

  59.  來嘛!╮(╯◇╰)╭口禾火~口禾火~ 60.  …(⊙_⊙;)… ○圭~○列~怎麼醬?

  61.  <( ̄oo, ̄)/豬頭不是一天造成的!    62. ˋ(′o‵")ˊ這個你問我也不知道~

  63.  有火星人~ \("▔□▔)/\("▔□▔)/    64. 不要以為我不知道咩!┌(‵▽′)╭

  65.  <( ̄ c ̄)y▂ξ 真煩,來哈根草吧~    66. 叔叔~這樣很冷耶! (#-.-)/

  67.  我是優質大帥哥一枚. \( ̄▽ ̄)♂   68. ♀( ̄▽ ̄)/ 我是優質大美女一枚.

  69.  ┐(─__─)┌ 你說我有啥米辦法咧~  70. 吃飽飽,睡好好! ○(* ̄︶ ̄*)○

  71.  有沒有被豬揍過啊? ○(#‵︿′#)○  72. ε(┬┬_┬┬)3  我 真 命 苦 ..

  73.  拆屋 ┴┴ ︵╰(‵□′)╯︵ ┴┴   74.  冷到不行 ≡ ̄﹏ ̄≡ 冷到不行..

  75.  <(‵^′)> 我看你還是回火星去好了! 76.  <( ̄oo, ̄)/ 沒看過豬哥嗎??…

  77.  <( ̄︶ ̄)/ 喜歡嗎?把拔買給你~   78. ︿( ̄︶ ̄)︿ 這學期歐趴歐趴啦~

  79.  無影腳昇級版 <(  ̄^ ̄)︵θ︵θ︵θ︵θ︵θ︵θ︵θ︵θ︵θ☆( >_<)~啊!

  80. 惡魔集團o(‵▽′)ψ 81. ψ(╰_╯)σ‧‧☆咒  82. ψ( ̄︶ ̄)ψ( ̄︶ ̄)ψ

  83. 嘟著嘴 ( ̄)︿( ̄)   84.(⊙o⊙) 目瞪口呆   85. \(~__~)/ 要抱抱啦…

  86. (>﹏<) 不~要~啦 87. (⊙.⊙)a…怎樣?  88. 〒▽〒 哇哇~人家不依

  89. o(一︿一+)o 怨.念   90. (─.─|||| 很多條線  91. (#--)/ 下次小心.

  92. 鬼魂團 ㄟ(川.一ㄟ)  93. √(─皿─)√ 讓我咬 94. (′ 3`)y==~ 人生海海..

  95. ( ̄y▽ ̄)╭ 唉唷唷~ 96. \(╯-╰)/ 不是我殺的 97. ( ̄▽ ̄#) = ﹏﹏ 飄走

  98. m(_ _)m 大人饒命啊! 99. ╭(′▽`)╭(′▽`)╯(讓咱們一起奔向夕陽吧…)

2006-01-05
한 해는 열두 달입니다.
첫째 달은 一月 입니다.
한  해
둘째 달은 二月 입니다.
여섯째 달은 유월입니다.
열째 달은 시월입니다.

收到邀请email 确认注册下载安装重启

登陆

 

没有一个好友,只好退出,重新登陆

 

 

显示。。很舒服的画面。嘿嘿。广告那个多

 

 

最后可惜的是:抱歉,您没有 Windows Live Messenger Beta 的邀请了。
如果有其它邀请,我们会通知您。