我想扒某个网站的数据,可是该网站弄的特别严实,怎么办
比如某个网站 http://www.xxx.com/GetDwInfo.asp?unitid=1
我想扒unitid从1到1000的页面,可是每次循环unitid扒出来的页面都是由GetDwInfo.asp跳转到错误页面error.asp页面内容
因为这个GetDwInfo.asp加了一个判断,必需是由本网站连接过来的才可以正常显示请问我怎么可以GetDwInfo.asp 页面内容
在线等,谢谢

解决方案 »

  1.   

    还是不行不知道怎么模拟
    高手进来看看怎么可以把这个网站的数据扒下来
    网站地址http://map.chinaok.com/city/html/beijing/beijing/ctcx/zhongcan/
    我想把里面的单位信息扒下来可是作的太严实了
    求助高手帮忙 在线!!!!
      

  2.   

    找PCSS帮忙?什么意思。pcss是人还是软件
    我对这个也挺感兴趣的
    帮你顶一下哦
      

  3.   

    不明白楼猪的意思,我按照我的理解来写一下吧
    如果是http://www.xxx.com/GetDwInfo.asp?unitid=1
    先用shell 打开http://www.xxx.com/GetDwInfo.asp,然后再同一个IE里修改地址(这样帮的目的是防止防盗链跳转)
    然后循环调用unitid=
    等到页面读取后调用API保存页面其实主要一步就是shell一下http://www.xxx.com/GetDwInfo.asp这个页面,这样做的目的是为了防止防盗链跳转,之后就可以反复打开你要的页面了
      

  4.   

    这没有什么难呀!自己控制webbrowser 呀!只要你够细心,他的数据肯定都有一点格式的。
      

  5.   

    maskdata(凋零|午夜的思念.碰触了时空) 你好 你那种办法不好使用,我早就试过
      

  6.   

    我原来也写过,不知道那个网站的防盗链是怎么写的?
    如果只是服务器跳转的话应该用我的方法就可以实现了我看了一下
    http://map.chinaok.com/GetDwInfo.asp是服务器触发的,有点难度了
      

  7.   

    maskdata(凋零|午夜的思念.碰触了时空)     怎么拦截IP数据包......?
     wwqna(york)                              好可以讲讲具体办法吗
     gpo2002(永吹不休)                        你这种方法可以实现吗?  为什么要同时打开多个首页?
    为什么要后退呢
      

  8.   

    gpo2002(永吹不休)的方法没办法实现,因为服务器验证的
    楼主我建议你去ASP版去问问
    拦截IP封包的话就是把发到服务器的IP数据拦截,然后分析后修改成你想要的,然后再发送给服务器
    不过这个方法不太现实了,因为技术含量太高,没必要为了一个网页而用这种方法
    如果真的想用,可以去查一下关于数据封包和HTTP协议的文章
      

  9.   

    添加microsoft internet control控件
    Private Sub Form_Load()
        WebBrowser1.Navigate "http://map.chinaok.com/city/html/beijing/beijing/ctcx/zhongcan/"
        Do While WebBrowser1.Busy = True
            DoEvents
        Loop
        Debug.Print WebBrowser1.Document.body.innertext
        Debug.Print WebBrowser1.Document.body.innerhtml
    End Sub
    看看是不是所有数据都下来了?
    现在要做的就是自己仔细的分析它的数据!
      

  10.   

    ' 如果这个不行,那我都要跳楼自杀了!
    '引用internet 控件和html object 控件
    'form1的
    Private Sub Command1_Click()
        Dim html As HTMLDocument
        Dim objlink As HTMLLinkElement
        Dim bfound As Boolean
        Set html = WebBrowser1.Document
        For Each objlink In html.links
            'Debug.Print objlink.innerText
            If InStr(objlink.innerText, "蜀中仙大酒楼") <> 0 Then
                Form2.bNotBusy = False
                objlink.Click
                bfound = True
                Exit For
            End If
        Next
        If bfound = False Then
            Exit Sub
        End If
        Do While Form2.bNotBusy = False
            DoEvents
        Loop
        Debug.Print Form2.WebBrowser1.Document.body.innerText
    End SubPrivate Sub Command2_Click()
        WebBrowser1.Navigate "http://map.chinaok.com/city/html/beijing/beijing/ctcx/zhongcan/"
    End SubPrivate Sub Form_Load()
        Me.Show
        Form2.Show
        Form2.WebBrowser1.RegisterAsBrowser = True
    End SubPrivate Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
        Set ppDisp = Form2.WebBrowser1.Object
        Form2.Show
    End Sub'form2的内容Option Explicit
    Public bNotBusy As BooleanPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Debug.Print "OK"
        bNotBusy = True
    End Sub
      

  11.   

    看看这个信息,然后你自个写代码去联了。
                <P style="MARGIN-TOP: 4px; MARGIN-BOTTOM: 4px"><SPAN 
                style="FONT-SIZE: 9pt">&nbsp; </SPAN><STRONG><SPAN 
                style="FONT-SIZE: 9pt">当前搜索:</SPAN></STRONG><SPAN 
                style="FONT-SIZE: 9pt">福建-厦门-中餐</SPAN></P><SPAN 
                style="FONT-SIZE: 9pt">&nbsp; 当前是第<FONT color=#ff6600>1</FONT>/14 
                页,本页有30条记录&nbsp;<FONT color=#000000><A style="COLOR: #000000" 
                href="http://map.chinaok.com/city/html/fujian/shamen/ctcx/zhongcan/shamen_ctcx_zhongcan_1_rst.html">后一页</A></FONT> 
                <FONT color=#000000><A style="COLOR: #000000" 
                href="http://map.chinaok.com/city/html/fujian/shamen/ctcx/zhongcan/shamen_ctcx_zhongcan_13_rst.html">最后一页</A>
      

  12.   

    我用用flashget 的批量下载
    是可以批量下载,但不知道flashget 什么原理
      

  13.   

    LuBingLin(为什么?)  我这个明白,我要的是具体某个单位的详细信息,不是这些信息
    比如这个页面http://map.chinaok.com/GetDwInfo.asp?unitid=7592-256214&type=中餐
    你这样是不能访问到该页面的,因为服务器不允许你这样访问。
      

  14.   

    增加一个 Referer 信息即可!
      

  15.   

    这是我用Winsock写的 命令信息,希望对你有用,使用 wininet 也容易,最简单的方法是使用xmlhttp
    Dim strCommand As StringstrCommand = "GET " + GetFileFromURL(m_strURL) + " HTTP/1.0" + vbCrLf
    strCommand = strCommand + "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*" + vbCrLf
    strCommand = strCommand + "Referer: " + GetHostFromURL(m_strURL) + vbCrLf
    strCommand = strCommand + "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)" + vbCrLf
    strCommand = strCommand + "Host: " + GetHostFromURL(m_strURL) + vbCrLf
    strCommand = strCommand + vbCrLf
    cmSocket.SendData strCommand下面是使用Xmlhttp的一个函数
    debug.print GetPage("http://club.5ivb.net")Public Function GetPage(ByVal URL As String)
    On Error GoTo errhand:
        Set objStream = CreateObject("adodb.stream")
        Set http = CreateObject("MSXML2.XMLHTTP")
        http.Open "GET", URL, False, "", ""
        http.setRequestHeader "Referer", URL
        http.send
        If http.readyState <> 4 Then
            Exit Function
        End If
        With objStream
            .Type = 1
            .Mode = 3
            .Open
            .Write http.responseBody
            .Position = 0
            .Type = 2
            .Charset = "GB2312"
            GetPage = objStream.ReadText
            objStream.Close
        End With
    errhand:
        Exit Function
    End Function
      

  16.   

    你用WEBZIP可以让你机器死机!!!
     wwqna(york)  首先谢谢你,你的思路很好,但程序很不稳定。
     dapha(www.5ivb.net) 您好,请问怎么增加 Referer 
      

  17.   

    http://community.csdn.net/Expert/topic/3696/3696617.xml?temp=.1594049
    印尼亚齐省劫掠现象严重华人成为抢劫目标http://news.sina.com.cn/c/2005-01-03/18414704205s.shtml
    港报呼吁印尼当局制止歹徒趁乱抢掠华人恶行