『壹』 怎麼採集網站數據
可以使用爬蟲軟體,現在市場上的爬蟲軟體已經很成熟了,對小白和入門新手也都是很友好的。如果不知道用哪個爬蟲的話可以試一下ForeSpdier數據採集引擎。操作簡單易上手,而且還有各種教程想輔助,基本上一個網站10分鍾就可以搞定。下附截圖:
『貳』 如何通過網路爬蟲獲取網站數據
這里以python為例,簡單介紹一下如何通過python網路爬蟲獲取網站數據,主要分為靜態網頁數據的爬埋山差取和動態網頁數據的爬取,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
靜態網頁數據
這里的數據都嵌套在網頁源碼中,所以直接requests網頁源碼進行解析就行,下面我簡單介紹一下,這里以爬取糗事網路上的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的欄位包括昵稱、內容、好笑數和評論數:
接著查看網頁源碼,如下,可以看的出來,所有的數據都嵌套在網頁中:
2.然後針對以上網頁結構,我們就可以直接編寫爬蟲代碼,解析網頁並提取出我們需要的數據了,測試代碼如下,非常簡單,主要用到requests+BeautifulSoup組合,其中requests用於獲取網頁源碼,BeautifulSoup用於解析網頁提取數據:
點擊運行這個程序,效果如下,已經成功爬取了到我們需要的數據:
動態網頁數據
這里的數據都沒有在網頁源碼中(所以直接請求頁面是獲取不到任何數據的),大部分情況下都是存儲在一唯唯個json文件中,只有在網頁更新的時候,才會載入數據,下面我簡單介紹一下這種方式,這里以爬取人人貸上面的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的數據包括年利率,借款標題,期限,金額和進度:
接著按F12調出開發者工具,依次點擊「Network」->「XHR」,F5刷新頁面,就可以找打動態載入的json文件,如下,也就是我們需要爬彎皮取的數據:
2.然後就是根據這個json文件編寫對應代碼解析出我們需要的欄位信息,測試代碼如下,也非常簡單,主要用到requests+json組合,其中requests用於請求json文件,json用於解析json文件提取數據:
點擊運行這個程序,效果如下,已經成功爬取到我們需要的數據:
至此,我們就完成了利用python網路爬蟲來獲取網站數據。總的來說,整個過程非常簡單,python內置了許多網路爬蟲包和框架(scrapy等),可以快速獲取網站數據,非常適合初學者學習和掌握,只要你有一定的爬蟲基礎,熟悉一下上面的流程和代碼,很快就能掌握的,當然,你也可以使用現成的爬蟲軟體,像八爪魚、後羿等也都可以,網上也有相關教程和資料,非常豐富,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
『叄』 怎麼用VBA或網路爬蟲程序抓取網站數據
VBA網抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向伺服器發送請求,接收伺服器返回的數據。
優點:效率高,基本無兼容性問題。
缺點:需要藉助如fiddler的工具來模擬http請求。
2、IE/webbrowser法:
創建IE控制項或webbrowser控制項,結合htmlfile對象的方法和屬性,模擬瀏覽器操作,獲取瀏覽器頁面的數據。
優點:這個方法可以模擬大部分的瀏覽器操作。所見即所得,瀏覽器能看到的數據就能用代碼獲取。
缺點:各種彈窗相當煩人,兼容性也確實是個很傷腦筋的問題。上傳文件在IE里根本無法實現。
3、QueryTables法:
因為它是excel自帶,所以勉強也算是一種方法。其實此法和xmlhttp類似,也是GET或POST方式發送請求,然後得到伺服器的response返回到單元格內。
優點:excel自帶,可以通過錄制宏得到代碼,處理table很方便
。代碼簡短,適合快速獲取一些存在於源代碼的table里的數據。
缺點:無法模擬referer等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
『肆』 如何用Excel進行網頁數據採集
以下是關鍵代碼:編寫一個採集函數
' MsgBox strURL
'Range("H2").Value = strURL
t = Timer '開始計時
tt = t
nm = Left(Range("J3").Value, 2) & Range("J4").Value
url2 = "https://**.com.cn/**.php?symbol=" & nm
Set objWeb = CreateObject("MSXML2.XMLHTTP") 'Microsoft.XMLHTTP
objWeb.Open "Get", strURL, False, "", ""
objWeb.send
arrBytes = CStr(objWeb.responseBody)
mytime2 = mytime2 + Timer - tt '計時
strReturn = "" '以下將二進制數據流轉換為中文文本
For i = 1 To LenB(arrBytes)
Chr1 = AscB(MidB(arrBytes, i, 1))
If Chr1 < &H80 Then
strReturn = strReturn & Chr(Chr1)
Else
Chr2 = AscB(MidB(arrBytes, i + 1, 1))
strReturn = strReturn & Chr(CLng(Chr1) * &H100 + CInt(Chr2))
i = i + 1
End If
Next i
ReadWeb = strReturn
End Function
『伍』 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放API的網站
一個網站如果開放了API,那麼就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索「某網站API」;
3、抓包。有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麼可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。