我想实现以下的功能:
1、先获取网页的源代码
2、提取特定的数据
3、将数据导进数据库中(或文本文件中)求高手解答啊!!!!!!!!!
1、先获取网页的源代码
2、提取特定的数据
3、将数据导进数据库中(或文本文件中)求高手解答啊!!!!!!!!!
解决方案 »
- 咱押宝有分了,问个问题,进者有份啊,100分
- VB中如何查找替换word中的指定字符窜?(急!!)
- 急!!!Form2中定义的变量如何在Form1中访问!!在先等·!·!
- 谁是VB+Delphi的高手(难题一个)
- 怎样让VB6开发环境支持鼠标中间轮滚动?
- 救助!
- 宽带网中如何测得真正的ip地址?------------高分!紧急!
- 我利用工程--添加文件添加了一个其他项目的form,为什么在我自己的项目里面看不见它?
- 求助:vb连接sql server数据库连接超时?
- 急急急急!!!,请教一个VB中SQL语言的问题!!!
- 请教提高开发效率的问题,总要开发类似功能的窗体,如何快速实现?
- VB6调用DLL出现接收的字符串为空的问题
Dim r
r = URLDownloadToFile(0, "http://www.baidu.com", "d:\1.html", 0, 0)
If r = 0 Then
MsgBox "下载完毕"
Else
MsgBox "下载失败"
End If
End Sub
ByVal sAgent As String, ByVal lAccessType As Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, _
ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" ( _
ByVal hInternetSession As Long, ByVal sUrl As String, _
ByVal sHeaders As String, ByVal lHeadersLength As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" ( _
ByVal hFile As Long, ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" ( _
ByVal hInet As Long) As Integer
Private Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000
Dim s Private Function GetUrlFile(stUrl As String) As String
Dim lgInternet As Long, lgSession As Long
Dim stBuf As String * 1024
Dim inRes As Integer
Dim lgRet As Long
Dim stTotal As String
stTotal = vbNullString
lgSession = InternetOpen("VBTagEdit", 1, vbNullString, vbNullString, 0)
If lgSession Then
lgInternet = InternetOpenUrl(lgSession, stUrl, vbNullString, _
0, INTERNET_FLAG_NO_CACHE_WRITE, 0)
If lgInternet Then
Do
inRes = InternetReadFile(lgInternet, stBuf, 1024, lgRet)
stTotal = stTotal & Mid$(stBuf, 1, lgRet)
Loop While (lgRet <> 0)
End If
inRes = InternetCloseHandle(lgInternet)
End If
GetUrlFile = stTotal
End FunctionPrivate Sub command1_click()
Text1.Text = GetUrlFile("http://china.alibaba.com/?cosite=123hao&location=homepage_sy")
End SubPrivate Sub Form_Load()
WebBrowser1.Navigate "http://china.alibaba.com/?cosite=123hao&location=homepage_sy"
End Sub
Function RegExpTest(patrn, strng) 'patrn:需要查找的字符 strng:被查找的字符串
Dim regEx, Match, Matches ' 创建变量。
Set regEx = New RegExp ' 创建正则表达式。
regEx.Pattern = patrn ' 设置模式。'"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"'
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True ' 设置全程匹配。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match In Matches ' 循环遍历Matches集合。
RetStr = RetStr & Match.Value & vbCrLf
Next
RegExpTest = RetStr
End Function
Private Sub Command1_Click()
Dim URLRegExp As String, MailRegExp As String, ChiniRegExp As String
Dim FileName As String, sFile As String, MuName As String, Chans As String
Dim i As Long, arr() As String, arr1() As String, arr2() As String URLRegExp = "http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" 'URL正则表达式
MailRegExp = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" '电子邮件正则表达式
ChiniRegExp = "[^\x00-\xff]* " Open "c:\temp.html" For Binary As #1
sFile = Space(LOF(1))
Get #1, , sFile
Close #1
Text1.Text = RegExpTest(URLRegExp, sFile)
End Sub
Dim XmlHttp
Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", strUrl, False
XmlHttp.send
getHtmlStr = StrConv(XmlHttp.ResponseBody, vbUnicode)
Set XmlHttp = Nothing
End Function
Private Sub cmd2_Click()
Dim s As String
Dim p As String
Inet1.Cancel
Inet1.protocol = icHTTP
Inet1.url = "http://money.finance.sina.com.cn/corp/go.php/vFD_BalanceSheet/stockid/600558/ctrl/part/displaytype/4.phtml"
s = ""
s = Inet1.OpenURL
'RichTextBox1.Text = s
'(?<=货币资金\D+)\d{1,3}(?:,\d{3})*
End Sub我用上面的方法提取了网页源代码,但是请问怎么做才能从s中提取我要的数据啊?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>大西洋(600558)_资产负债表_新浪网</title>
<meta name="Keywords" content="大西洋,600558,行情" />
<meta name="Description" content="大西洋的实时行情" />
<link media="all" rel="stylesheet" href="/corp/view/css/newstyle.css" />
<link media="all" rel="stylesheet" href="/corp/view/css/tables.css" />
<link media="all" rel="stylesheet" href="/corp/view/css/style4.css" />
<style type="text/css">
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;}
body,ul,ol,li,p,form,fieldset,table,td{font-family:"宋体";}
body{background:#fff;color:#000;}
td,p,li,select,input,textarea,div{font-size:12px;}ul{list-style-type:none;}
select,input{vertical-align:middle; padding:0; margin:0;}.f14 {font-size:14px;}
.lh20 {line-height:20px;}
.lh23{line-height:23px;}
.b1{border:1px #fcc solid;}a{text-decoration: underline;color:#009}
a:visited{color:#333333;}
a:hover这里面有你要的东西吗
Dim strTemp As String
strTemp = RichTextBox1
Call sub_GetData(strTemp, "货币资金", Text1)
Call sub_GetData(strTemp, "短期投资净额", Text2)End SubPrivate Sub sub_GetData(ByVal strSource As String, ByVal strRefer As String, objTextBox As TextBox)
Dim lngStrtT As Long
Dim lngStart As Long
Dim lngEnd As Long
lngStartT = InStr(1, strSource, strRefer) + Len(strRefer)
lngStart = InStr(lngStartT, strSource, "<TD>") + Len("<TD>")
lngEnd = InStr(lngStart, strSource, "</TD>") - 1
objTextBox = Trim(Mid(strSource, lngStart, lngEnd - lngStart + 1))
End Sub