转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
用Access分析网站实例         ★★★★

用Access分析网站实例

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1152 更新时间:2009/4/22 23:22:25

如何用 Access 分析一个网站,或者在网站上提交一个查询,得到结果后存储进数据库哪?
  如何用 Access 下载 DVBBS 论坛上所有的帖子?
  如何用 ACCESS 编写灌水程序?

  方法一:
   答案非常简单—— DHTML 编程
  有人可能问了,ACCESS 使用的是 VBA ,而 DHTML 中使用的是 VBS 怎么可能通用哪?其实 VBS / VBA 都是 VB 的子集。在 Access 中只要引用

  Microsoft Internet Controls
  Microsoft HTML Object Library

  即可,然后在窗体上加入 “Microsoft Web 浏览器”控件

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

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

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

  1、DOCUMENT 对象:代表这整个 HTML 文档
  2、BODY 对象:是 DOCUMENT 对象的子对象,里面存储着所有显示给用户看的 HTML 代码
  3、innerText 属性:页面中显示给客户看的文本,注意:不是 HTML 代码呦
  4、innerHTML属性:构成页面的 HTML 代码
  5、对象.all.length属性:页面中所有 element 的个数。(all 用于表示所有对象)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, ".")

  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

  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.DocumentSet 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
            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

利用 DHTML 的 innerHTML 来更改网页的源代码,建立一个简单的 FORM ,然后提交给服务器,继续查询下面的 IP
    Bd.innerHTML = "

"
    在 INPUT TEXT search_ip 中填入 IP。
    dc.all.Item("search_ip").Value = strNewIP
    用 DHTML 提交 FORM 到服务器
    dc.all.Item("b1").Click
  End Sub


  Private Sub Form_Open(Cancel As Integer)
  Text1.Value = Nz(DLookup("ip1", "ipaddress", "[mark]=last" & Me.Caption & ""), "1.0.0.0")

  End Sub

  Private Sub WebBrowser3_DownloadComplete()
    该事件在页面成功下载到本地时运行,这时候 DOCUMENT 对象
    已经完全被客户端浏览器读取了,我们只要获取 Body 对象中的 innerHTML 即可
    If Len(strNowIP) = 0 Then
        splitIP Text1.Value
    End If
   
    If check1.Value = True Then
            Call WriteLog("61.12.15.117")
    End If
  End SubFunction refreshIP() As String      搜索完一个IP以后再搜索下面一个
    Dim i As Long
    lngSearchIP(2) = lngSearchIP(2) + 1
    For i = 2 To 4
        If lngSearchIP(i) >= 256 Then
            lngSearchIP(i) = 0
            lngSearchIP(i + 1) = lngSearchIP(i + 1) + 1
        End If
    Next i
    refreshIP = Format(lngSearchIP(4), "0") & "." & Format(lngSearchIP(3), "0") & "." & Format(lngSearchIP(2), "0") & "." & Format(lngSearchIP(1), "0")
    strNowIP = refreshIP
    Debug.Print refreshIP
  End Function


[C语言系列]C#对INI文件操作简单分析  [C语言系列]C# DataSet String Byte[] 压缩 解压缩 代码 实例
[C语言系列]C#获取真实IP地址及代理IP地址分析  [C语言系列]Messagebox.Show()常用参数用法实例详解
[MySql]C#连接mysql实例  [搜索优化]闵涛——如何让百度重新收录你的网站,网站被K怎么…
[Web开发]网站的下载资源防盗链系统是如何做的?  [搜索优化]百度蜘蛛爬行网站检测代码诠释
[网站推广]分析网站改版后如何维持排名  [建站心得]浅谈高质量的原创软文对网站的重要性
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台