爬蟲——網頁爬取方法和網頁解析方法
爬取網頁的方法
按照網頁和APP劃分,參考崔慶才老師的分享,可以劃分為:網頁爬取和App爬取。
網頁爬取
(1)服務端渲染:頁面結果由伺服器渲染後返回,有效資訊包括在伺服器發來的HTML中,比如貓眼電影網站。
使用基本的HTTP請求庫便可以實現爬取,如urllib、urllib3、pycurl、hyper、requests、grab等框架,其中運用最多的是requests。
(2)客戶端渲染:頁面內容由JavaScript渲染而成,真實資料通過Ajax獲取,比如淘寶,今日頭條網頁內容。當操作獲取更多資料時,URL沒有變化。
客戶端渲染,崔老師給了四個方法:
- 尋找Ajax介面,找到引數、請求方式,然後用HTTP庫模擬;使用代理包Fiddler/Charles檢視介面。
- 模擬瀏覽器執行,適用於藉口複雜的情況。如使用Selenium、Splinter、Spynner、pyppeteer、PhantomJS、Splash、requests-html等實現,最常用的是Selenium。
- 直接提取JavaScript資料,適用於資料包含在HTML的結果之中,使用正規表示式即可獲取。
- 模擬執行JavaScript。適用於已經掌握了JavaScript的某些執行和加密邏輯,如使用Selenium、PyExecJS、PyV8、js2py等庫.
渲染:英文是render,通俗理解是通過特定方式把資訊呈現給使用者的過程。
App爬取
(1)普通無加密介面:
直接抓保獲取請求,抓包工具有 Charles、Fiddler、mitmproxy。
(2)加密引數介面:
使用Fiddler、mitmdump、Xposed 等實時處理;破解加密邏輯。
(3)加密內容介面:
適用於獲取的內容看不懂。可以使用可見即可爬的工具Appium、Xposed、hook獲取渲染結果;反編譯破解。
(4)非常規協議介面
非常規HTTP、HTTPS協議,直接抓包沒有結果。使用 Wireshark抓取所有協議包,或使用Tcpdump實現TCP資料包截獲。
如何選擇爬取方法
在爬取內容前,需要先對網頁的結構進行分析,分析需要獲取的資料儲存在哪裡,從而選擇適合的爬取方法。
頁面解析的方法
解析方法 | 使用的庫 |
---|---|
正規表示式 | re |
Xpath | lmx, Serapy Selecto |
Json/XML | json, xml2dct |
CSS Selector | pyquery, cssselect |
此外還有一種方法是智慧解析,因學習深度沒有達到,此部分內容先不展開。
內容儲存
爬取內容的儲存方法有很多種,需要根據需求選擇儲存方式。
檔案形式 | 儲存載體 | 常用庫 |
---|---|---|
檔案 | JSON、CSV、TXT、圖⽚、視訊、⾳頻等 | csv、xlwt、json、pandas、pickle、python-docx 等 |
資料庫 | MySQL、MongoDB、HBase 等 | pymysql、pymssql、redis-py、pymongo、py2neo、thrift |
搜尋引擎 | Solr、ElasticSearch 等 | elasticsearch、pysolr 等 |
雲端儲存 | 七⽜雲、又拍雲、阿里雲、騰訊雲、AmazonS3 等 | qiniu、upyun、boto、azure-storage、google-cloud-storage 等 |
參考資料
相關文章
- node:爬蟲爬取網頁圖片爬蟲網頁
- 《網頁爬蟲》網頁爬蟲
- 爬蟲 | 基本步驟和解析網頁的幾種方法爬蟲網頁
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Node JS爬蟲:爬取瀑布流網頁高清圖JS爬蟲網頁
- 爬取網頁文章網頁
- Python 爬取網頁資料的兩種方法Python網頁
- 一起學爬蟲——使用Beautiful Soup爬取網頁爬蟲網頁
- python 爬蟲如何爬取動態生成的網頁內容Python爬蟲網頁
- 網頁爬蟲--未完成網頁爬蟲
- python 爬蟲網頁登陸Python爬蟲網頁
- Python 爬蟲網頁解析工具lxml.html(二)Python爬蟲網頁XMLHTML
- Python 爬蟲網頁解析工具lxml.html(一)Python爬蟲網頁XMLHTML
- 網頁用python爬取後如何解析網頁Python
- Python網路爬蟲之爬取淘寶網頁頁面 MOOC可以執行的程式碼Python爬蟲網頁
- 不會Python爬蟲?教你一個通用爬蟲思路輕鬆爬取網頁資料Python爬蟲網頁
- python爬蟲爬取網頁中文亂碼問題的解決Python爬蟲網頁
- 爬蟲(6) - 網頁資料解析(2) | BeautifulSoup4在爬蟲中的使用爬蟲網頁
- 【爬蟲】網頁抓包工具--Fiddler爬蟲網頁
- 爬蟲抓取網頁資料原理爬蟲網頁
- ferret 爬取動態網頁網頁
- Puppeteer爬取網頁資料網頁
- 關於python爬取網頁Python網頁
- Python爬蟲教程-13-爬蟲使用cookie爬取登入後的頁面(人人網)(下)Python爬蟲Cookie
- Python爬蟲教程-12-爬蟲使用cookie爬取登入後的頁面(人人網)(上)Python爬蟲Cookie
- python爬取換頁_爬蟲爬不進下一頁了,怎麼辦Python爬蟲
- 爬蟲抓取網頁的詳細流程爬蟲網頁
- python爬取網頁詳細教程Python網頁
- 手把手教你利用爬蟲爬網頁(Python程式碼)爬蟲網頁Python
- Python網路爬蟲第三彈《爬取get請求的頁面資料》Python爬蟲
- Python爬蟲的兩套解析方法和四種爬蟲實現Python爬蟲
- Jsoup + HtmlUtil 實現網易新聞網頁爬蟲JSHTML網頁爬蟲
- 001.01 一般網頁爬蟲處理網頁爬蟲
- python爬蟲:使用BeautifulSoup修改網頁內容Python爬蟲網頁
- 如何使用python進行網頁爬取?Python網頁
- 初識Scrapy框架+爬蟲實戰(7)-爬取鏈家網100頁租房資訊框架爬蟲
- Python 爬蟲進階篇-利用beautifulsoup庫爬取網頁文章內容實戰演示Python爬蟲網頁
- 「譯」如何用 Node.Js 和 Puppeteer 爬取網頁Node.js網頁