爬蟲需要處理的一些問題:
傳送http請求
解析html原始碼
處理反爬蟲機制效率
簡單的不能再簡單的粗略不嚴謹地回顧一下:
傳送http請求:python裡我最喜歡用requests傳送請求,傳送請求的**是這樣的:
requests.get(url) # get
requests.post(url, data) # post
requests.put / delete / head / … # 各種請求
#p.s.使用下面的**處理cookie更酸爽
requests.session()
到目前為止我還沒有找到別的語言有比這個更加簡單的傳送http請求的方式了(不排除我見識短的可能性)。
解析html原始碼:
python預設可以使用htmlparser來解析html,如果你覺得用著不爽(確實用著不爽),可以有很多第三方庫來優雅的做這些事情(lxml / beautifulsoup / …),甚至可以通過一些庫(selenium等)來直接使用瀏覽器。你可以直接使用類似 body.div.a[『href』] 這樣簡單到爆的語法取自己需要的內容。
處理反爬蟲機制:
效率: 爬蟲的效率問題基本不在解析資訊的速度上,網路io的時間其實才是大頭。比如你請求網頁花了500ms,相應的你的解析速度是1ms還是10ms已經不重要了。其他還有很多地方就不一一總結了,簡而言之,寫爬蟲來講,python相對於其它語言的優勢在於有足夠簡介的語法和足夠多的庫支援,開發效率很高,而且執行效率方面,網路io的時間已經大大沖淡了python的效率問題。
用python可以1個人做5個人的事情,只是多用10倍的機器,多麼划算。如上~~~
spark相比MapReduce的優勢
spark 比hadoop快的原因 資料本地性 排程優化 傳輸優化,最主要的是基於記憶體計算和引入了dag。hadoop的計算結果在磁碟中,spark是在記憶體中 資料計算任務需要多個步驟時,hadoop需要引入oozie等工具,但是spark有dag hadoop中,每乙個job 的計算結果都會儲...
swift相比oc的優勢
1 更容易閱讀 行尾不再需要分號,if else語句括弧也不需要,呼叫方法時 也不再巢狀,簡化了句法和語法更加乾淨有表現力.2 更易於維護 把oc標頭檔案.h和實現檔案.m合併成了乙個 檔案.swift 3 更安全 可選型別使得乙個nil可選值的可能性變得非常明確,可以讓程式設計師帶著目標去寫 問題...
Spark相比MapReduce的優勢
mapreduce是apache hadoop中用於大規模資料集計算的平行計算框架,目前被廣泛應用於企業的離線資料處理上。但是因為種種原因,mapreduce的效能並不理想。而spark作為資料處理框架界的後起之秀,很多方面都超過了mapreduce。下面來列出mapreduce的不足以及spark...