<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          爬蟲篇 | 工欲善其事,必先利其器

          共 2377字,需瀏覽 5分鐘

           ·

          2021-09-29 08:44

          點(diǎn)擊上方“Python編程學(xué)堂”,關(guān)注公眾號并“星標(biāo)”

          獲取新朋友福利



          前面一個(gè)【爬蟲篇】的文章分享了網(wǎng)絡(luò)爬蟲的含義、分類、組成、思路以及網(wǎng)絡(luò)爬蟲協(xié)議(Robots協(xié)議),對爬蟲有了初步的了解,本節(jié)重點(diǎn)分享學(xué)習(xí)爬蟲,你需要學(xué)會(huì)選擇。(詳見:爬蟲篇 | 這是你了解的爬蟲嗎?——爬蟲概述

          一、編程語言的選擇


          能夠做網(wǎng)絡(luò)爬蟲的編程語言很多,包括PHP、Java、C/C++、Python等都能做爬蟲,都能達(dá)到抓取想要的數(shù)據(jù)資源。那我們該怎么選擇編程語言呢?首先我們需要了解他們做爬蟲的優(yōu)缺點(diǎn),才能選出合適的開發(fā)環(huán)境。


          (一)PHP

          網(wǎng)絡(luò)爬蟲需要快速的從服務(wù)器中抓取需要的數(shù)據(jù),有時(shí)數(shù)據(jù)量較大時(shí)需要進(jìn)行多線程抓取。PHP雖然是世界上最好的語言,但是PHP對多線程、異步支持不足,并發(fā)不足,而爬蟲程序?qū)λ俣群托室髽O高,所以說PHP天生不是做爬蟲的。


          (二)C/C++

          C語言是一門面向過程、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā),運(yùn)行效率和性能是最強(qiáng)大的,但是它的學(xué)習(xí)成本非常高,需要有很好地編程知識基礎(chǔ),對于初學(xué)者或者編程知識不是很好地程序員來說,不是一個(gè)很好的選擇。當(dāng)然,能夠用C/C++編寫爬蟲程序,足以說明能力很強(qiáng),但是絕不是最正確的選擇。


          (三)Java

          在網(wǎng)絡(luò)爬蟲方面,作為Python最大的對手Java,擁有強(qiáng)大的生態(tài)圈。但是Java本身很笨重,代碼量大。由于爬蟲與反爬蟲的較量是持久的,也是頻繁的,剛寫好的爬蟲程序很可能就不能用了。爬蟲程序需要經(jīng)常性的修改部分代碼。而Java的重構(gòu)成本比較高,任何修改都會(huì)導(dǎo)致大量代碼的變動(dòng)。


          (四)Python

          Python在設(shè)計(jì)上堅(jiān)持了清晰劃一的風(fēng)格,易讀、易維護(hù),語法優(yōu)美、代碼簡潔、開發(fā)效率高、第三方模塊多。并且擁有強(qiáng)大的爬蟲Scrapy,以及成熟高效的scrapy-redis分布式策略。實(shí)現(xiàn)同樣的爬蟲功能,代碼量少,而且維護(hù)方便,開發(fā)效率高。


          通過以上比較,各種編程語言各有優(yōu)缺點(diǎn),但對于初學(xué)者來說,用Python進(jìn)行網(wǎng)絡(luò)爬蟲開發(fā),無疑是一個(gè)非常棒的選擇。本人今后對爬蟲篇分享的內(nèi)容就是使用Python 3 編程語言進(jìn)行的。

          二、集成開發(fā)工具的選擇


          Python的集成開發(fā)環(huán)境有很多,這里推薦兩款不錯(cuò)的 Python集成開發(fā)工具,一個(gè)是PyCharm,一個(gè)是 Sublime Text,當(dāng)然適合自己的 Python IDE才是最好用的。


          (一)PyCharm

          PyCharm 是由 JetBrains 打造的一款 Python IDE。具備一般 Python IDE 的功能,比如:調(diào)試、語法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測試、版本控制等。其提供了一個(gè)帶編碼補(bǔ)全,代碼片段,支持代碼折疊和分割窗口的智能、可配置的編輯器,可幫助用戶更快更輕松的完成編碼工作。


          (二)Sublime Text

          Sublime Text 具有漂亮的用戶界面和強(qiáng)大的功能,例如代碼縮略圖,Python 的插件,代碼段等。還可自定義鍵綁定,菜單和工具欄。主要功能包括:拼寫檢查,書簽,完整的 Python API , Goto 功能,即時(shí)項(xiàng)目切換,多選擇,多窗口等等。

          Sublime Text 是一個(gè)跨平臺的編輯器,同時(shí)支持 Windows、Linux、Mac OS X等操作系統(tǒng)。


          對于集成開發(fā)工具,沒有絕對的好,適合自己的就是最好的。這里推薦使用小巧、便捷的Sublime Text編輯器。


          三、需要的技能


          (一)Python基本語法

          這里就不再贅述,如有不懂得建議關(guān)注公眾號參考之前的文章或者網(wǎng)上搜索教程。


          (二)了解HTTP協(xié)議,會(huì)使用urllib庫

          HTTP是一個(gè)簡單的請求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。會(huì)使用urllib庫模擬瀏覽器發(fā)送請求,獲取服務(wù)器響應(yīng)的數(shù)據(jù)。


          (三)解析響應(yīng)內(nèi)容

          Python強(qiáng)大的庫提供豐富的解析庫,會(huì)使用re、xpath、BeautifulSoup4、jsonpath、pyquery等中的一種或幾種。目的是使用某種描述性語法來提取匹配規(guī)則的數(shù)據(jù)。


          (四)動(dòng)態(tài)頁面及驗(yàn)證碼的處理

          有些網(wǎng)頁的內(nèi)容是非靜態(tài)的頁面數(shù)據(jù),需要懂得如何動(dòng)態(tài)加載網(wǎng)頁內(nèi)容。為了防止惡意的爬蟲,有的網(wǎng)頁提供了驗(yàn)證碼的處理,需要能獲取驗(yàn)證碼并機(jī)器識別出內(nèi)容,實(shí)現(xiàn)自動(dòng)化處理。


          (五)會(huì)使用抓包工具

          瀏覽器自帶的“開發(fā)人員工具”雖然也能夠?qū)崿F(xiàn)抓包,但是對于一些復(fù)雜的網(wǎng)頁,簡單的這個(gè)抓包工具是不行的,你需要會(huì)使用Flidder、Httpwatch、Charles等抓包工具,會(huì)使用一到兩個(gè)就可以。

          總結(jié)


          以上內(nèi)容看著摸不著頭腦,感覺挺難的,但是由于Python簡潔的語法、強(qiáng)大的第三方庫,使得Python做爬蟲很方便、便捷。下期內(nèi)容將讓你見識Python爬蟲簡單到不能再簡單,讓你愛不釋手。

          END



          推薦閱讀:

          1. 人生苦短,一起學(xué)Python(一)  Python概述

          2. 人生苦短,一起學(xué)Python(二)  為什么學(xué)Python

          3. 人生苦短,一起學(xué)Python(三)  怎么學(xué)Python

          4. 人生苦短,一起學(xué)Python(四)  Python安裝

          5. 人生苦短,一起學(xué)Python(五)  Python基礎(chǔ)語法

          6. 人生苦短,一起學(xué)Python(六)Python基本數(shù)據(jù)類型

          7. 爬蟲篇 | 這是你了解的爬蟲嗎?——爬蟲概述

          8. 實(shí)戰(zhàn)篇 | 還在擔(dān)心被惡意攻擊嗎?你需要的驗(yàn)證碼,Python幫你實(shí)現(xiàn)!





          喜歡的話,請給我個(gè)好看吧


          瀏覽 60
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产av最新福利 国产jk在线观看 | 尻屄视频免费看 | 成人内射生活片 | 一级A片逼 | 亚洲成人影音 |