用Access分析网站实例

作者:佚名来源:IT动力 点击:

如何用 Access 分析一个网站,或者在网站上提交一个查询,得到结果后存储进数据库哪? Chinaz~com

如何用 Access 下载 DVBBS 论坛上所有的帖子?

Www^Chinaz^com

如何用 ACCESS 编写灌水程序? 站长.站

方法一: Chinaz^com

答案非常简单—— DHTML 编程。

中国站.长.站

有人可能问了,ACCESS 使用的是 VBA ,而 DHTML 中使用的是 VBS 怎么可能通用哪?其实 VBS / VBA 都是 VB 的子集。在 Access 中只要引用

中国.站.长站

Microsoft Internet Controls

中.国.站.长.站

Microsoft HTML Object Library

Www.Chinaz.com

即可,然后在窗体上加入 “Microsoft Web 浏览器”控件 中国站长_站,为中文网站提供动力

好了,下面就以我写的一个读取某 IP 物理地域查询网站页面的数据库为例说明 DHTML / “Microsoft Web 浏览器”控件在 ACCESS 的应用吧。 中.国.站长站

“Microsoft Web 浏览器”控件的作用是什么哪?主要就是为了获得 DOCUMENT 对象的,DHTML 的操作都是以 DOCUMENT 对象为运行基础的。 中国站长.站

要完成读取网页的功能我们必须了解 DHTML 的几个简单的对象以及属性 Www_Chinaz_com

1、DOCUMENT 对象:代表这整个 HTML 文档 Chinaz_com

2、BODY 对象:是 DOCUMENT 对象的子对象,里面存储着所有显示给用户看的 HTML 代码 中国站长.站

3、innerText 属性:页面中显示给客户看的文本,注意:不是 HTML 代码呦 中国.站长站

4、innerHTML属性:构成页面的 HTML 代码

Chinaz_com

5、对象.all.length属性:页面中所有 element 的个数。(all 用于表示所有对象) Chinaz

ok ,接下来就让我们一边写代码,一边分析吧: 中.国.站.长.站

以下为引用的内容:

  Option Compare Database
  Dim blnSwitch As Boolean
  Private Sub Command1_Click()        ''用于启动浏览功能
 
    Me.WebBrowser3.Navigate ("http://ip.loveroot.com/index.php?job=search")
  End Sub

[中国站长站]

  Private Sub Command11_Click()   ''将需要搜索的IP 写入全局变量
    splitIP Text1.Value
  End Sub
  Function splitIP(strip) ''将需要搜索的IP 写入全局变量
  Dim a() As String
  strip = strip & "."
  a = Split(strip, ".") Chinaz~com

  Dim i As Long
  For i = 0 To UBound(a)
    If a(i) = "" Then a(i) = "0"
    lngSearchIP(4 - i) = CLng(a(i))
  Next i

Chinaz

  End Function 站.长.站

  Sub WriteLog(ip1 As String)         ''读取结果
    Dim dc As MSHTML.HTMLDocument
    Dim Bd As MSHTML.HTMLBody
    Dim El As MSHTML.HTMLElementCollection
    Dim strip As String
    Dim strAdd As String
    Dim strSql
    Dim i As Long
    Set dc = WebBrowser3.Document

Chinaz.com

Set Bd = dc.body
   
    Dim lngStart As Long
   
    ''循环 DOCUMENT 中所有的元素获取需要的字符
 
    For i = 0 To dc.all.length - 1
        ''由于该服务器重写界面,我改了一下分析代码
        ''If dc.all(i).tagName = "p" And Left(dc.all(i).innerText, 4) = "查询结果" Then
        If dc.all(i).tagName = "p" And Left(dc.all(i).innerText, 8) = "官方数据查询结果" Then
            ''由于该服务器重写界面,我改了一下分析代码
            ''strAdd = Mid(dc.all(i).innerText, InStr(1, dc.all(i).innerText, "(") + 2, InStr(1, dc.all(i).innerText, ")") -     InStr(1, dc.all(i).innerText, "(") - 3) 站.长站
            ''strip = Mid(dc.all(i).innerText, InStr(1, dc.all(i).innerText, "查询结果:") + 6, InStr(1, dc.all(i).innerText, "(") - InStr(1, dc.all(i).innerText, "查询结果:") - 7)
            strAdd = Right(dc.all(i).innerText, Len(dc.all(i).innerText) - InStr(dc.all(i).innerText, " - ") - 3)
            strip = strNowIP
            LabelSIP.Caption = strip & strAdd
            ''ok 终于得到需要的数据了,用 SQL 语句直接写入数据库吧
            strSql = "update ipaddress set [ip1]=''" & strip & "'',[add]=''" & strAdd & "'' where mark=''last''"
            CurrentProject.Connection.Execute strSql Chinaz_com
            strSql = "insert into ipaddress([ip1],[add],[mark],[enip]) values(''" & strip & "'',''" & strAdd & "'',''no''," & CStr(enaddr(strip)) & ")"
            CurrentProject.Connection.Execute strSql
            Exit For
        End If
    Next i 中国站.长站

    Dim strNewIP As String
    strNewIP = refreshIP
    On Error Resume Next Www~Chinaz~com

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 验证码: 验证码
查看所有评论
  • 广告推荐