VB6收集更新的URL

VB6收集更新的URL,vb6,Vb6,我有一个已经生成的网址列表。问题是,我相信该站点使用php生成页面,因为当导航其中一个地址时,该站点会向该地址添加一个子目录 例如,如果我导航到 http://www.wowhead.com/item=43 地址变为 http://www.wowhead.com/item=43/squires-boots 每个项目编号的子目录都不同 我想做的是为我生成的每个地址收集重定向到的url,因为有很多地址,大约127000个,我正在寻找最快的方法 目前,我正在使用webbrowser控件wb Dim

我有一个已经生成的网址列表。问题是,我相信该站点使用php生成页面,因为当导航其中一个地址时,该站点会向该地址添加一个子目录

例如,如果我导航到

http://www.wowhead.com/item=43
地址变为

http://www.wowhead.com/item=43/squires-boots
每个项目编号的子目录都不同

我想做的是为我生成的每个地址收集重定向到的url,因为有很多地址,大约127000个,我正在寻找最快的方法

目前,我正在使用webbrowser控件wb

Dim l As Long
Dim ff As Long
Dim strPerkText as String
Dim sPaths() As String
Dim lngTimer As Long
Const lngWait As Long = 5

strPerkText = OpenFile    'using a sub to get this data

sPaths = Split(strPerkText, vbCrLf)

ff = FreeFile

Open App.Path & "\ItemListURLs.txt" For Output As #ff
    For l = 0 To UBound(sPaths)
        lngTimer = Timer
        wb.Navigate2 sPaths(l)
        Do While wb.READYSTATE <> READYSTATE_COMPLETE
            If Timer - lngTimer >= lngWait Then
                Exit Do
            End If
            DoEvents
        Loop
        Write #ff, wb.LocationURL
        DoEvents
    Next l
Close #ff
lngWait是我必须等待wb使用新url更新的时间,每页大约5秒,除非出现任何错误。这意味着,按照我现在构建程序的方式,大概需要一周的时间来完成所有工作。我不确定使用不同的控件、API或纯本机代码是否可以更快地完成此任务


欢迎所有建议。

我已经测试了Inet控件。它只花了webbrowser所需时间的一小部分就完成了这项工作,而且我不必担心网站可能会抛出任何错误。对于其他寻找类似内容的人,我使用了以下代码:

Dim l As Long
Dim sPaths() As String
Dim b() As Byte
Dim strFileName As String
'OpenFile is a function that opens the specific 
'file with the list of URLs    
If strPerkText = "" Then
    strPerkText = OpenFile
End If
'split up the list
sPaths = Split(strPerkText, vbCrLf)
'progress bar - set to 0
pbrGo.Value = 0
'itterate through the list
For l = 0 To UBound(sPaths)
    'make sure there is a path to use
    If sPaths(l) <> "" Then
        'set the path to the Inet control
        Inet.URL = sPaths(l)
        'Retrieve the HTML data into a byte array.
        b() = Inet.OpenURL(Inet.URL, icByteArray)
        'GetFileName captures the end of the URL back to the last /
        strFileName = GetFileName(Inet.URL)
        'txtCollect.text contains the path where the files will be saved
        'adjust the filename to include the path and extension
        strFileName = txtCollect.Text & strFileName & ".txt"
        'Create a local file from the retrieved data.
        Open strFileName For Binary Access Write As #1
            Put #1, , b()
        Close #1
        'update progress bar
        pbrGo.Value = (l / UBound(sPaths)) * 100
        DoEvents
    End If
Next l
beep
MsgBox "Downloading Files Complete"

我已经测试了Inet控件。它只花了webbrowser所需时间的一小部分就完成了这项工作,而且我不必担心网站可能会抛出任何错误。对于其他寻找类似内容的人,我使用了以下代码:URL重写几乎不意味着使用PHP。如果网站将你的整个IP子网列入黑名单,并用这种方式对其进行攻击,也不要感到惊讶。人们只会想知道,你试图以这种方式获取URL的目的是什么。很难想象这不违反网站的使用条款。