要想用程序从网页上抓数据,需要熟悉HTML和java script语言,这里有一个在学习JSON时碰到的例程,就是在java script 中创建JSON对象,为了学习并掌握其内容,按我的理解对此例程做个注释,记录我掌握的知识,以备将来验证是否正确。
程序很简单,分三部分(代码在本文后面):
1、
部分:用大字符显示标题;
2、
部分:显示一段信息的结构,但无内容,内容在后面添加;
3、部分:java script程序,先定义了一个JSON结构的变量JSONObject,然后,用变量中的内容填写到部分,定位方式是通过其中定义的id,这里详细说明一下:
语句document.getElementById("jname").innerHTML=JSONObject.name就是找id为jname的元素,把其中的内容替换为JSONObject.name,这个变量的内容为Bill Gates,即:
将修改为Bill Gates,由id定位到标签span,而InnerText表示标签元素span中间部分的文本内容(不含标签元素)。
我们用程序从网页上抓数据时,往往需要填表,也是通过这种方式修改网页内容,最后提交,得到我们需要的内容,例如,下面语句就是填写邮件号码并提交查询:
? ? WebBrowser1.Document.GetElementById("mailNum").InnerText = “1126381490399”
? ? WebBrowser1.Document.Forms("mailTrackSnglForm").submit
也可以用下面的写法:
? ? WebBrowser1.document.Forms("mailTrackSnglForm").All("mailNum").Value =“1126381490399”
再比如,填写用户名和密码后提交:
? WebBrowser1.Document.Forms(0).All("name").Value = "AHSD08"
? ? WebBrowser1.Document.Forms(0).All("password").Value = "ems2345"
? ? WebBrowser1.Document.Forms(0).submit
对应网页中的元素或者说对象定位,可以用id名称,也可以用序号,比如上例中的Forms(0)。
下面是上面分析的例程代码:
?
Author:
Name:
Age:
Address:
Phone:
<script type="text/java script">
var JSONObject= {
"name":"Bill Gates",
"street":"Fifth Avenue New York 666",
"age":56,
"phone":"555 1234567"};
document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jage").innerHTML=JSONObject.age
document.getElementById("jstreet").innerHTML=JSONObject.street
document.getElementById("jphone").innerHTML=JSONObject.phone
document.getElementById("jauthor").innerHTML="iamlaosong"