怎样过滤webbrowser中网页内容??我研究了很久了啊。

时间:2021-03-11 18:28:09
如果不愿意写出代码,那提示一下总行吧?
还有一个问题就是怎么样改变webbrowser网页的head中的信息,并即时生效。
谢谢!

17 个解决方案

#1


用.net,支持网页编辑。

#2


谢谢,我正在看,好像有些启发。

#3


用html object。

#4


Dim mydoc As IHTMLDocument2
   Set mydoc = wb(index).Document

   Dim head As IHTMLElementCollection
   Set head = mydoc.ALL.tags("META")
   
   Dim element As IHTMLElement
   Set element = head.Item(0, 0)
    
   Dim metae As IHTMLMetaElement
   Set metae = element
   metae.httpEquiv = "MSThemeCompatible"
   metae.content = "yes"
   
  虽然改变META的内容,没有错误出现,但是效果并没有出来啊,网页还是没有使用xp的样式。关键是怎么让它生效啊?
各位老大帮帮忙!

#5


上面的代码可以改变一个存在的META,但是可不可以添加一个META,而又即使生效呢?
谢谢了!

#6


up

#7


可不可以用正则来作?

#8


up!"正则"是什么东东啊?

#9


up!

#10


正则匹配呀!可以完成一些模糊的匹配找个vb的帮助文件来,应该有介绍的!

#11


不太了解,up!

#12


再up

#13


IHTML接口。看msdn

#14


怎么样把link 提取出来?

#15


Public flag1
Public flag2
Dim dflag, pos
Function GetData(ByVal URL As String)
Dim Data() As Byte
Dim i As Integer
Dim st As Long
Dim s, d, g

st = 1
Init
Data = Inet1.OpenURL(URL)
On Error GoTo err
Text1.Text = ""
    
s = InStr(st, Data, Text3.Text, 1)
While s > 0 And dflag = 0
d = InStr(Len(Text3.Text) + s, Data, Text4.Text, 1)
g = Mid(Data, s, d - s + Len(Text4.Text)) 'Len(Text3.Text) +
DoEvents
Text1.Text = Text1.Text & vbCrLf & _
"=================================================" & _
"=======================" & vbCrLf & g
st = d + 1
s = InStr(st, Data, Text3.Text, 1)
Wend

err:
If err Then
Text1.Text = "No Contents Found between selected Text..."
End If
End Function

Public Function Init()
flag1 = 0
flag2 = 0
End Function

Private Sub Command3_Click()
dflag = 0
Text1.Text = "Executing The Request......"
Command3.Enabled = False
Command1.Enabled = False
Me.GetData (Text2.Text)
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Command2_Click()
dflag = 1
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Command1_Click()
dflag = 0
Text1.Text = "Executing The Request......"
Command3.Enabled = False
Command1.Enabled = False
Me.GetTags (Text2.Text)
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Form_Load()
dflag = 0
Form1.Caption = "Capture Data from any Website"
Text1.Text = "Result Window"
Text2.Text = "www.envy.nu/prashant"
Text3.Text = "<a"
Text4.Text = "</a>"
End Sub
Function GetTags(ByVal URL As String)
Dim Data() As Byte
Dim str As String
Dim i As Long

On Error Resume Next
Init
Data = Inet1.OpenURL(URL)
Text1.Text = ""
For i = 1 To UBound(Data)
    If dflag = 1 Then
    Exit For
    End If
        
    If Chr(Data(i)) = "<" Then flag1 = 1

 If Data(i) > 0 And flag1 = 1 Then
    str = str + Chr(Data(i))
    If Chr(Data(i)) = ">" Then
        flag2 = 1
        Text1.Text = Text1.Text & vbCrLf & str
        str = ""
        Init
    End If
 End If
DoEvents
Next i
err:
If err Then
Text1.Text = "This site has internal Server Errors....."
End If
End Function

#16


我拿他来提取网站的电话, 传真 等等

具体要提取什么在里面输入就可以了!
不过帮我看看怎么能把link 找出来,不段的spider 才好!

#17


hi,关注!

#1


用.net,支持网页编辑。

#2


谢谢,我正在看,好像有些启发。

#3


用html object。

#4


Dim mydoc As IHTMLDocument2
   Set mydoc = wb(index).Document

   Dim head As IHTMLElementCollection
   Set head = mydoc.ALL.tags("META")
   
   Dim element As IHTMLElement
   Set element = head.Item(0, 0)
    
   Dim metae As IHTMLMetaElement
   Set metae = element
   metae.httpEquiv = "MSThemeCompatible"
   metae.content = "yes"
   
  虽然改变META的内容,没有错误出现,但是效果并没有出来啊,网页还是没有使用xp的样式。关键是怎么让它生效啊?
各位老大帮帮忙!

#5


上面的代码可以改变一个存在的META,但是可不可以添加一个META,而又即使生效呢?
谢谢了!

#6


up

#7


可不可以用正则来作?

#8


up!"正则"是什么东东啊?

#9


up!

#10


正则匹配呀!可以完成一些模糊的匹配找个vb的帮助文件来,应该有介绍的!

#11


不太了解,up!

#12


再up

#13


IHTML接口。看msdn

#14


怎么样把link 提取出来?

#15


Public flag1
Public flag2
Dim dflag, pos
Function GetData(ByVal URL As String)
Dim Data() As Byte
Dim i As Integer
Dim st As Long
Dim s, d, g

st = 1
Init
Data = Inet1.OpenURL(URL)
On Error GoTo err
Text1.Text = ""
    
s = InStr(st, Data, Text3.Text, 1)
While s > 0 And dflag = 0
d = InStr(Len(Text3.Text) + s, Data, Text4.Text, 1)
g = Mid(Data, s, d - s + Len(Text4.Text)) 'Len(Text3.Text) +
DoEvents
Text1.Text = Text1.Text & vbCrLf & _
"=================================================" & _
"=======================" & vbCrLf & g
st = d + 1
s = InStr(st, Data, Text3.Text, 1)
Wend

err:
If err Then
Text1.Text = "No Contents Found between selected Text..."
End If
End Function

Public Function Init()
flag1 = 0
flag2 = 0
End Function

Private Sub Command3_Click()
dflag = 0
Text1.Text = "Executing The Request......"
Command3.Enabled = False
Command1.Enabled = False
Me.GetData (Text2.Text)
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Command2_Click()
dflag = 1
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Command1_Click()
dflag = 0
Text1.Text = "Executing The Request......"
Command3.Enabled = False
Command1.Enabled = False
Me.GetTags (Text2.Text)
Command3.Enabled = True
Command1.Enabled = True
End Sub

Private Sub Form_Load()
dflag = 0
Form1.Caption = "Capture Data from any Website"
Text1.Text = "Result Window"
Text2.Text = "www.envy.nu/prashant"
Text3.Text = "<a"
Text4.Text = "</a>"
End Sub
Function GetTags(ByVal URL As String)
Dim Data() As Byte
Dim str As String
Dim i As Long

On Error Resume Next
Init
Data = Inet1.OpenURL(URL)
Text1.Text = ""
For i = 1 To UBound(Data)
    If dflag = 1 Then
    Exit For
    End If
        
    If Chr(Data(i)) = "<" Then flag1 = 1

 If Data(i) > 0 And flag1 = 1 Then
    str = str + Chr(Data(i))
    If Chr(Data(i)) = ">" Then
        flag2 = 1
        Text1.Text = Text1.Text & vbCrLf & str
        str = ""
        Init
    End If
 End If
DoEvents
Next i
err:
If err Then
Text1.Text = "This site has internal Server Errors....."
End If
End Function

#16


我拿他来提取网站的电话, 传真 等等

具体要提取什么在里面输入就可以了!
不过帮我看看怎么能把link 找出来,不段的spider 才好!

#17


hi,关注!