vb.net如何爬取網(wǎng)頁(yè) vbnet抓取網(wǎng)頁(yè)數(shù)據(jù)

vb.net如何獲取網(wǎng)頁(yè)的cookie

這個(gè)問(wèn)題有點(diǎn)意思,但題主表意不明,確切的說(shuō)應(yīng)該分Web端和客戶端兩種情況。

專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)安丘免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

想來(lái)問(wèn)到這個(gè)問(wèn)題的不應(yīng)該是開(kāi)發(fā)Web端的,說(shuō)說(shuō)客戶端的吧:

1、HttpWebRequest.CookieContainer

Cookies通過(guò)HttpResponse傳給客戶端,通過(guò)HttpRequest傳回服務(wù)端,因此你可以

設(shè)置Response.Cookies集合的值修改Cookie

1

Response.Cookies("MyCookie")("Data") = myCookie

通過(guò)讀取Request.Cookies集合的值得到Cookies的值

1

myCookie =Request.Cookies("MyCookie")("Data") ""

2、本人自編的一個(gè)函數(shù),放到一個(gè)模塊里直接調(diào)用即可:

Dim myCookie As String

Public Function LoginAnGetCookie(ByRef sUser As String, ByRef sPass As String) As String()

On Error Resume Next

REM 登錄網(wǎng)站并獲得cookie

Dim url As String = "網(wǎng)站地址"

Dim postData As String = "sUser=" sUser "sPass=" sPass '假設(shè)傳值的是這樣的,實(shí)際中可用Fiddler抓取。

Dim wc As System.Net.WebClient = New System.Net.WebClient

Rem wc.Headers.Add("Cookie", myCookie) '可講第一次獲得的Cookie賦值給myCookie,然后在此處傳值給網(wǎng)站即可

wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded")

wc.Headers.Add("UserAgent", "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10)")

Dim sHtml As String = wc.UploadString(url, "POST", postData)

Dim arrAllKeys() As String = wc.ResponseHeaders.AllKeys

Dim sCookies As String = "Set-Cookie"

For i As Integer = 0 To arrAllKeys.Length - 1

If arrAllKeys(i).Equals("Set-Cookie") Then sCookies = wc.ResponseHeaders.Get(i)

Next i

Return New String() {sHtml, sCookies} '返回二維數(shù)組,其中LoginAnGetCookie(0)是網(wǎng)頁(yè)源代碼,LoginAnGetCookie(1)是登錄后的Cookie

End Function

VB.NET 如何獲取網(wǎng)頁(yè)中的數(shù)據(jù)

Public Function webCaptureContent(ByVal mWebsiteUrl As String, ByVal mWebsiteType As Boolean) As String

'啟動(dòng)一次具體的數(shù)據(jù)采集工作,返回采集到的HTML內(nèi)容:要求必須輸入帶://的全地址數(shù)據(jù)

On Error Resume Next

Dim Str_WebContent As String = "請(qǐng)輸入查找網(wǎng)站地址."

Dim wb As WebClient = New WebClient() '//創(chuàng)建一個(gè)WebClient實(shí)例

If mWebsiteUrl.IndexOf("://") 0 Then

'//獲取或設(shè)置用于對(duì)向 Internet 資源的請(qǐng)求進(jìn)行身份驗(yàn)證的網(wǎng)絡(luò)憑據(jù)。(可有可無(wú))

wb.Credentials = CredentialCache.DefaultCredentials

'//從資源下載數(shù)據(jù)并返回字節(jié)數(shù)組。(加@是因?yàn)榫W(wǎng)址中間有"/"符號(hào))

Dim pagedata As Object = wb.DownloadData(mWebsiteUrl)

'//轉(zhuǎn)換字符

If mWebsiteType Then

Str_WebContent = Encoding.Default.GetString(pagedata)

Else

Str_WebContent = Encoding.UTF8.GetString(pagedata)

End If

End If

Return Str_WebContent '提取出來(lái)新聞內(nèi)容,刪除Body前后的多余內(nèi)容,同時(shí)補(bǔ)充上該 Body標(biāo)記,形成完整的內(nèi)容 Str_WebContent '

End Function

求VB.NET讀取網(wǎng)頁(yè)內(nèi)容寫(xiě)法

Imports System.Net

Imports System.IO

Imports System.Text.RegularExpressions

Public Class Form1

Private Sub button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim stream As IO.Stream = WebRequest.Create(UrlAdress).GetResponse().GetResponseStream()

'注意urladress為你上面的網(wǎng)頁(yè)地址。

Dim sr As StreamReader = New StreamReader(stream, System.Text.Encoding.UTF8)

Label1.Text = Regex.Match(sr.ReadToEnd, "回答采納率").ToString

'sr。readtoend讀取網(wǎng)頁(yè)流到末尾,即使用正則表達(dá)式從網(wǎng)頁(yè)流中提取“回答采納率”,賦值給Label1.Text ‘沒(méi)有則為空

sr.Dispose() '關(guān)閉流

End Sub'要提取什么東西用正則表達(dá)式最好

End Class

如何用vb.net獲得網(wǎng)頁(yè)的源代碼

Dim url As String=" 網(wǎng)址"

Dim httpReq As System.Net.HttpWebRequest

Dim httpResp As System.Net.HttpWebResponse

Dim httpURL As New System.Uri(url)

httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)

httpReq.Method = "GET"

httpResp = CType(httpReq.GetResponse(), HttpWebResponse)

httpReq.KeepAlive = False ' 獲取或設(shè)置一個(gè)值,該值指示是否與

Internet資源建立持久連接。

Dim reader As StreamReader = _

New StreamReader(httpResp.GetResponseStream,

System.Text.Encoding.GetEncoding(-0))

Dim respHTML As String = reader.ReadToEnd() 'respHTML就是網(wǎng)頁(yè)源代碼

當(dāng)前標(biāo)題:vb.net如何爬取網(wǎng)頁(yè) vbnet抓取網(wǎng)頁(yè)數(shù)據(jù)
本文來(lái)源:http://www.muchs.cn/article36/doejspg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、定制開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站網(wǎng)站改版、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)