什麼是爬蟲?

廣義上的講,能夠獲取網路上的數據,就可以稱之為爬蟲,所以,任何語言理論上都可以寫爬蟲。

那麼,為什麼你提到的 swift 和 OC,這兩個語言,沒什麼爬蟲呢?

首先贊一個,態度是很好的,直到去GitHub搜,還知道用英文搜,這已經比很多人好了。

繼續正題,swift 和 OC ,為什麼沒有爬蟲呢?因為這是寫客戶端的啊騷年,直接把爬蟲放進客戶端,你不考慮並發,不考慮封IP,不考慮代理什麼的嗎?

一般來說,除非寫純工具類的 app ,我們寫 app ,都會有前端和後端之分,前端就是用端語言寫的客戶端,例如用 Java 寫的安卓 app,或者用 swift 寫的 iOS app ,OC 寫的 Mac app,但不管怎麼說,這些都是廣義上的前端,負責功能,交互,另外還會做一套後端,放在伺服器上,負責數據的存儲,一些大的計算等等,也包括爬虫部分。

例如我要開發一個 app,功能是獲取頭條的精選回答,那麼肯定會寫爬蟲,那麼,爬蟲放在哪呢?如果你放在客戶端里,那麼今日頭條的網頁格式一旦變化了,你的爬蟲掛了,你的客戶端就掛了,如果一個用戶每天刷的太多了,今日頭條把它封了,那對這個用戶而言,客戶端就掛了。如果把爬蟲放在客戶端裡面,這都是必然會遇到的問題。

相反,如果把爬蟲放在開發者自己的伺服器,每個客戶端都請求這個伺服器地址,那麼這些問題都會很容易解決,例如,如果今日頭條的網頁改版了,那麼你只需要改一下伺服器的爬蟲,所有客戶端就都能正常運行了。

總結一下,swift 和 OC 都可以寫爬蟲,但很少有人會這麼干


推薦閱讀:
相关文章