以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]网页如何获取指定内容【已解决】  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92401)

--  作者:188802386
--  发布时间:2016/11/2 16:21:00
--  [求助]网页如何获取指定内容【已解决】
代码如下:
Dim page As Integer
For page = 1 To 2
Dim txb1 As String = "http://weidian.eallcn.com/232621561/mmfy/mmfylist/curpage=" & page
\'output.show("第" & page & "页主页面网址:" & txb1)
Dim web1 As new windows.forms.webbrowser
web1.ScriptErrorsSuppressed = True
web1.Navigate(txb1)
Do Until web1.ReadyState = 4
    Application.DoEvents
Loop
Dim idx1 = 0
For Each dl As object In web1.Document.GetElementsByTagName("a")
    Dim url =  dl.GetAttribute("href")
    If url > "" Then
        Dim c As String = "FYID" & idx1 - 3
        If Tables("表A").Cols.Contains(c) Then
        End If
        idx1 += 1
output.show("第" & idx1 & "页面:" & url)
    End If
Next
Next

获取数据如下:
第1页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2325283
第2页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2325283
第3页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2325283
第4页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3378009
第5页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3378009
第6页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3378009
第7页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3657566
第8页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3657566
第9页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3657566
第10页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3574733
第11页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3574733
第12页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3574733
第13页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3640350
第14页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3640350
第15页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3640350
第16页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3167062
第17页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3167062
第18页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3167062
第19页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3711744
第20页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3711744
第21页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3711744
第22页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737907
第23页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737907
第24页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737907
第25页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3726841
第26页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3726841
第27页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3726841
第28页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737904
第29页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737904
第30页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737904
第31页面:http://weidian.eallcn.com/232621561
第32页面:tel:023-68295577
第33页面:http://s.eallcn.com/chat?user_id=EmLL250D&user_name=EmLL250D&user_photo=&user_tel=
第34页面:http://weidian.eallcn.com/232621561/wt
第35页面:http://weidian.eallcn.com/232621561/about
第1页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3311151
第2页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3311151
第3页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3311151
第4页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737888
第5页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737888
第6页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737888
第7页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3590719
第8页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3590719
第9页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3590719
第10页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737881
第11页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737881
第12页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737881
第13页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737853
第14页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737853
第15页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737853
第16页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2465561
第17页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2465561
第18页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2465561
第19页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737050
第20页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737050
第21页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737050
第22页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737682
第23页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737682
第24页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3737682
第25页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2598771
第26页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2598771
第27页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=2598771
第28页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3478495
第29页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3478495
第30页面:http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=3478495
第31页面:http://weidian.eallcn.com/232621561
第32页面:tel:023-68295577
第33页面:http://s.eallcn.com/chat?user_id=GjSRl2ja&user_name=GjSRl2ja&user_photo=&user_tel=
第34页面:http://weidian.eallcn.com/232621561/wt
第35页面:http://weidian.eallcn.com/232621561/about

问:
请问如何自获取网址仅包含有http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=的网址,并且网址不重复(每次有三个相同)
[此贴子已经被作者于2016/11/3 11:40:59编辑过]

--  作者:有点蓝
--  发布时间:2016/11/2 16:48:00
--  
Dim page As Integer
For page = 1 To 2
    Dim txb1 As String = "http://weidian.eallcn.com/232621561/mmfy/mmfylist/curpage=" & page
    \'output.show("第" & page & "页主页面网址:" & txb1)
    Dim web1 As new windows.forms.webbrowser
    web1.ScriptErrorsSuppressed = True
    web1.Navigate(txb1)
    Do Until web1.ReadyState = 4
        Application.DoEvents
    Loop
    Dim idx1 = 0
    Dim u2 As String
    For Each dl As object In web1.Document.GetElementsByTagName("a")
        Dim url As String =  dl.GetAttribute("href")
        If url > "" And url.Contains("http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=") And url <> u2 Then
            idx1 += 1
            output.show("第" & idx1 & "页面:" & url)
            u2 = url
        End If
    Next
Next

--  作者:188802386
--  发布时间:2016/11/2 16:53:00
--  
谢谢老师
--  作者:188802386
--  发布时间:2016/11/2 20:23:00
--  
再次提问
就是如果page =1 to 2    换成to200或2000岂不内存飙升,在论坛看到如何运行完一个页面释放内存,但是我不会,麻烦老师改改看如何能释放内存

--  作者:有点蓝
--  发布时间:2016/11/2 21:08:00
--  
时至今日,不会使用搜索的同学都欧特了

Dim page As Integer
For page = 1 To 2
    Dim txb1 As String = "http://weidian.eallcn.com/232621561/mmfy/mmfylist/curpage=" & page
    \'output.show("第" & page & "页主页面网址:" & txb1)
    Dim web1 As new windows.forms.webbrowser
    web1.ScriptErrorsSuppressed = True
    web1.Navigate(txb1)
    Do Until web1.ReadyState = 4
        Application.DoEvents
    Loop
    Dim idx1 = 0
    Dim u2 As String
    For Each dl As object In web1.Document.GetElementsByTagName("a")
        Dim url As String =  dl.GetAttribute("href")
        If url > "" And url.Contains("http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=") And url <> u2 Then
            idx1 += 1
            output.show("第" & idx1 & "页面:" & url)
            u2 = url
        End If
    Next
web.Dispose()
GC.Collect()
Next


--  作者:有点青
--  发布时间:2016/11/3 9:40:00
--  

尽量不要重复new对象

 

Dim page As Integer
Dim web1 As new windows.forms.webbrowser
web1.ScriptErrorsSuppressed = True
For page = 1 To 2
    Dim txb1 As String = "http://weidian.eallcn.com/232621561/mmfy/mmfylist/curpage=" & page
    \'output.show("第" & page & "页主页面网址:" & txb1)
    web1.Navigate(txb1)
    Do Until web1.ReadyState = 4
        Application.DoEvents
    Loop
    Dim idx1 = 0
    Dim u2 As String
    For Each dl As object In web1.Document.GetElementsByTagName("a")
        Dim url As String =  dl.GetAttribute("href")
        If url > "" And url.Contains("http://weidian.eallcn.com/232621561/mmfy/mmfydetail/id=") And url <> u2 Then
            idx1 += 1
            output.show("第" & idx1 & "页面:" & url)
            u2 = url
        End If
    Next
Next
web.Dispose()
GC.Collect()

--  作者:188802386
--  发布时间:2016/11/3 11:41:00
--  
谢谢,采用这种做法后内存上不去了,CPU占用有点,不过至少不会瘫痪
--  作者:有点青
--  发布时间:2016/11/3 12:30:00
--  
以下是引用188802386在2016/11/3 11:41:00的发言:
谢谢,采用这种做法后内存上不去了,CPU占用有点,不过至少不会瘫痪

 

执行这种,是比较占用cpu的

 

    Do Until web1.ReadyState = 4

        Application.DoEvents
    Loop