一般公司做爬蟲(chóng)采集的話(huà)常用哪些語(yǔ)言
優(yōu)采云 發(fā)布時(shí)間: 2020-05-03 08:09
其實(shí)我不太同意做了DHT爬蟲(chóng)這位的說(shuō)法。
不同語(yǔ)言自然會(huì )有不同害處。離開(kāi)環(huán)境談那個(gè)好網(wǎng)絡(luò )爬蟲(chóng)用什么語(yǔ)言寫(xiě),哪個(gè)不好都是耍流氓。
1,如果是自己做著(zhù)玩的話(huà),定向爬幾個(gè)頁(yè)面網(wǎng)絡(luò )爬蟲(chóng)用什么語(yǔ)言寫(xiě),效率不是核心要求的話(huà),問(wèn)題不會(huì )大,什么語(yǔ)言都行的,性能差別不會(huì )大。當然,如果遇到極其復雜的頁(yè)面,正則寫(xiě)的很復雜的話(huà),爬蟲(chóng)的可維護性都會(huì )增長(cháng)。
2,如果是做定向爬取,而目標又要解析動(dòng)態(tài)js。
那么這個(gè)時(shí)侯,用普通的懇求頁(yè)面,然后得到內容的方式肯定不行了,就要一個(gè)類(lèi)似firfox,chrome的js引擎來(lái)對js代碼做動(dòng)態(tài)解析。這個(gè)時(shí)侯推薦casperJS+phantomjs或slimerJS+phantomjs
3,如果是*敏*感*詞*的網(wǎng)站爬取
這個(gè)時(shí)侯就要考慮到,效率,擴展性,可維護性,等等了。
*敏*感*詞*的爬取涉及的方面好多,比如分布式爬取,判重機制,任務(wù)調度。這些問(wèn)題深入下去哪一個(gè)簡(jiǎn)單了?
語(yǔ)言選定這個(gè)時(shí)侯很重要。
NodeJs:做爬蟲(chóng)效率很高。高并發(fā),多線(xiàn)程編程弄成了簡(jiǎn)單的遍歷和callback,內存cpu占用小,要處理好callback。
PHP:各種框架四處有,隨便拉個(gè)來(lái)用都行。但是,PHP的效率真的有問(wèn)題…不多說(shuō)
Python:我用python寫(xiě)的比較多,對各類(lèi)問(wèn)題都有比較好的支持。scrapy框架挺好用,優(yōu)點(diǎn)多。
我認為js也不是太適宜寫(xiě)…效率問(wèn)題。沒(méi)寫(xiě)過(guò),估計會(huì )有麻煩一堆。
據我曉得的,大公司也有用c++的,總之大多數都是在開(kāi)源框架上改建。真重新造個(gè)輪子的不多吧。
不值。
隨手憑印象寫(xiě)的,歡迎見(jiàn)諒。



