我想扒某个网站的数据,可是该网站弄的特别严实,怎么办
比如某个网站 http://www.xxx.com/GetDwInfo.asp?unitid=1
我想扒unitid从1到1000的页面,可是每次循环unitid扒出来的页面都是由GetDwInfo.asp跳转到错误页面error.asp页面内容
因为这个GetDwInfo.asp加了一个判断,必需是由本网站连接过来的才可以正常显示请问我怎么可以GetDwInfo.asp 页面内容
在线等,谢谢
比如某个网站 http://www.xxx.com/GetDwInfo.asp?unitid=1
我想扒unitid从1到1000的页面,可是每次循环unitid扒出来的页面都是由GetDwInfo.asp跳转到错误页面error.asp页面内容
因为这个GetDwInfo.asp加了一个判断,必需是由本网站连接过来的才可以正常显示请问我怎么可以GetDwInfo.asp 页面内容
在线等,谢谢
解决方案 »
- 100分恳求思路和sample,急啊!如何用自己的程序控制第三方exe运行程序的窗体和它上面的控件操作,比如赋值等!
- And &HFF是什么意思叱?
- SetCapture 和 ReleaseCapture分别是什么意思啊?怎么用啊?
- 实现一个奇怪的问题
- 请问软件打包发布的问题
- 一个小问题,回答者有分.
- 文件中字符串的修改
- 如何能够将.chm文件一起打包?(打包向导里的添加文件没有.chm类型的啊)
- ◇◆◇ 怎样动态绑定Text-To-Speech ◇◆◇
- 大大大虾!!----------------------------------------------------------------------------------------请关注,并帮忙!!!
- 2004年的最后一天
- 标准表达式中数据类型不匹配
高手进来看看怎么可以把这个网站的数据扒下来
网站地址http://map.chinaok.com/city/html/beijing/beijing/ctcx/zhongcan/
我想把里面的单位信息扒下来可是作的太严实了
求助高手帮忙 在线!!!!
我对这个也挺感兴趣的
帮你顶一下哦
如果是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这个页面,这样做的目的是为了防止防盗链跳转,之后就可以反复打开你要的页面了
如果只是服务器跳转的话应该用我的方法就可以实现了我看了一下
http://map.chinaok.com/GetDwInfo.asp是服务器触发的,有点难度了
wwqna(york) 好可以讲讲具体办法吗
gpo2002(永吹不休) 你这种方法可以实现吗? 为什么要同时打开多个首页?
为什么要后退呢
楼主我建议你去ASP版去问问
拦截IP封包的话就是把发到服务器的IP数据拦截,然后分析后修改成你想要的,然后再发送给服务器
不过这个方法不太现实了,因为技术含量太高,没必要为了一个网页而用这种方法
如果真的想用,可以去查一下关于数据封包和HTTP协议的文章
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
看看是不是所有数据都下来了?
现在要做的就是自己仔细的分析它的数据!
'引用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
<P style="MARGIN-TOP: 4px; MARGIN-BOTTOM: 4px"><SPAN
style="FONT-SIZE: 9pt"> </SPAN><STRONG><SPAN
style="FONT-SIZE: 9pt">当前搜索:</SPAN></STRONG><SPAN
style="FONT-SIZE: 9pt">福建-厦门-中餐</SPAN></P><SPAN
style="FONT-SIZE: 9pt"> 当前是第<FONT color=#ff6600>1</FONT>/14
页,本页有30条记录 <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>
是可以批量下载,但不知道flashget 什么原理
比如这个页面http://map.chinaok.com/GetDwInfo.asp?unitid=7592-256214&type=中餐
你这样是不能访问到该页面的,因为服务器不允许你这样访问。
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
wwqna(york) 首先谢谢你,你的思路很好,但程序很不稳定。
dapha(www.5ivb.net) 您好,请问怎么增加 Referer
印尼亚齐省劫掠现象严重华人成为抢劫目标http://news.sina.com.cn/c/2005-01-03/18414704205s.shtml
港报呼吁印尼当局制止歹徒趁乱抢掠华人恶行