1. 網頁內容是用 json 動態生成的,需要怎麼爬取
抓取js動態生成的內容的頁面有兩種基本的解決方案
1用dryscrape庫動態抓取頁面
js腳本是通過瀏覽器來執行並返回信息的,所以,抓取js執行後的頁面,一個最直接的方式就是用python模擬瀏覽器的行為。WebKit 是一個開源的瀏覽器引擎,python提供了許多庫可以調用這個引擎,dryscrape便是其中之一,它調用webkit引擎來處理包含js等的網頁!
2 selenium web測試框架
selenium是一個web測試框架,它允許調用本地的瀏覽器引擎發送網頁請求,所以,它同樣可以實現抓取頁面的要求。
2. 怎麼用代理ip地址進行網頁爬取
代理ip地址進行網頁爬取方法:
1、在電腦或手機設備中使用IP海IP代理軟體。
2、設置代理的網路類型,然後設置相關IP代理線路。
3、連接後打開瀏覽器輸入IP地址,出現的結果就是當前更換好的IP。
3. 如何爬取URL不變的網站內容
步驟如下:1、下載數據採集工具 2、輸入你要採集的網址,等它自動識別,然後點擊啟動,然後等採集完,免費導出結果 3、如果搞不定,看一下官網視頻手把手講解視頻(免費的),預計花費幾十分鍾 4、重復步驟2,遇到問題稍作手動修改
4. 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放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。
5. 怎麼用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等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
6. python爬蟲如何分析一個將要爬取的網站
首先,你去爬取一個網站,
你會清楚這個網站是屬於什麼類型的網站(新聞,論壇,貼吧等等)。
你會清楚你需要哪部分的數據。
你需要去想需要的數據你將如何編寫表達式去解析。
你會碰到各種反爬措施,無非就是各種網路各種解決。當爬取成本高於數據成本,你會選擇放棄。
你會利用你所學各種語言去解決你將要碰到的問題,利用各種語言的client組件去請求你想要爬取的URL,獲取到HTML,利用正則,XPATH去解析你想要的數據,然後利用sql存儲各類資料庫。
7. 如何爬取網頁表格數據
網頁里的表格數據可以用爬蟲比如python去採集,也可以用採集器去採集網頁上的表格數據會更簡單些。
8. 需要爬取一個網站內容,需登錄和驗證碼,怎麼破
在採集網站的過程中,部分數據價值較高的網站,會限制訪客的訪問行為。這種時候建議通過登錄的方式,獲取目標網站的cookie,然後再使用cookie配合代理IP進行數據採集分析。
1 使用表單登陸
這種情況屬於post請求,即先向伺服器發送表單數據,伺服器再將返回的cookie存入本地。
2 使用cookie登陸
使用cookie登陸,伺服器會認為你是一個已登陸的用戶,所以就會返回給你一個已登陸的內容。因此,需要驗證碼的情況可以使用帶驗證碼登陸的cookie解決。
此外目前市場上的一些採集軟體也是支持登錄和驗證碼。