要想用程序从网页上抓数据,需要熟悉HTML和JavaScript语言,这里有一个在学习JSON时碰到的例程,就是在Javascript 中创建JSON对象,为了学习并掌握其内容,按我的理解对此例程做个注释,记录我掌握的知识,以备将来验证是否正确。
程序很简单,分三部分(代码在本文后面):
1、<h2>部分:用大字符显示标题;
2、<p>部分:显示一段信息的结构,但无内容,内容在后面添加;
3、<scrip>部分:Javascript程序,先定义了一个JSON结构的变量JSONObject,然后,用变量中的内容填写到<p>部分,定位方式是通过其中定义的id,这里详细说明一下:
语句document.getElementById("jname").innerHTML=JSONObject.name就是找id为jname的元素,把其中的内容替换为JSONObject.name,这个变量的内容为Bill Gates,即:
将<span></span>修改为<span>Bill Gates</span>,由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)。
下面是上面分析的例程代码:
<html>
<body>
<h2>在 JavaScript 中创建 JSON 对象</h2>
<p>
Author: <span></span><br />
Name: <span></span><br />
Age: <span></span><br />
Address: <span></span><br />
Phone: <span></span><br />
</p>
<script type="text/javascript">
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"
</script>
</body>
</html>
执行效果如下:
在 Javascript 中创建 JSON 对象
Author: iamlaosong
Name: Bill Gates
Age: 56
Address: Fifth Avenue New York 666
Phone: 555 1234567
--------------------------------------分割线 --------------------------------------
在C语言中解析JSON配置文件
--------------------------------------分割线 --------------------------------------