我就想寫個爬蟲,到底要學多少東西啊?

2021-03-02 人工智慧愛好者社區
當今大數據的時代,網絡爬蟲已經成為了獲取數據的一個重要手段。
但要學習好爬蟲並沒有那麼簡單。首先知識點和方向實在是太多了,它關係到了計算機網絡、編程基礎、前端開發、後端開發、App 開發與逆向、網絡安全、資料庫、運維、機器學習、數據分析等各個方向的內容,它像一張大網一樣把現在一些主流的技術棧都連接在了一起。正因為涵蓋的方向多,因此學習的東西也非常零散和雜亂,很多初學者搞不清楚究竟要學習哪些知識,學習過程中遇到反爬也不知道用什麼方法來解決,本篇我們來做一些歸納和總結。初學爬蟲一些最基本的網站,往往不帶任何反爬措施。比如某個博客站點,我們要爬全站的話就順著列表頁爬到文章頁,再把文章的時間、作者、正文等信息爬下來就可以了。那代碼怎麼寫呢?用 Python 的 requests 等庫就夠了,寫一個基本的邏輯,順著把一篇篇文章的源碼獲取下來,解析的話用 XPath、BeautifulSoup、PyQuery 或者正則表達式,或者粗暴的字符串匹配把想要的內容摳出來,再加個文本寫入存下來就完事了。代碼很簡單,就幾個方法調用。邏輯很簡單,幾個循環加存儲。最後就能看到一篇篇文章就被我們存到自己的電腦裡面了。當然有的同學可能不太會寫代碼或者都懶得寫,那麼利用基本的可視化爬取工具,如某爪魚、某裔採集器也能通過可視化點選的方式把數據爬下來。如果存儲方面稍微擴展一下的話,可以對接上 MySQL、MongoDB、Elasticsearch、Kafka 等等來保存數據,實現持久化存儲。以後查詢或者操作會更方便。反正,不管效率如何,一個完全沒有反爬的網站用最最基本的方式就搞定了。Ajax、動態渲染隨著網際網路的發展,前端技術也在不斷變化,數據的加載方式也不再是單純的服務端渲染了。現在你可以看到很多網站的數據可能都是通過接口的形式傳輸的,或者即使不是接口那也是一些 JSON 的數據,然後經過 JavaScript 渲染得出來的。這時候,你要再用 requests 來爬那就不頂用了,因為 requests 爬下來的源碼是服務端渲染得到的,瀏覽器看到頁面的和 requests 獲取的結果是不一樣的。真正的數據是經過 JavaScript 執行的出來的,數據來源可能是 Ajax,也可能是頁面裡的某些 Data,也可能是一些 ifame 頁面等等,不過大多數情況下可能是 Ajax 接口獲取的。所以很多情況下需要分析 Ajax,知道這些接口的調用方式之後再用程序來模擬。但是有些接口帶著加密參數,比如 token、sign 等等,又不好模擬,咋整呢?一種方法就是去分析網站的 JavaScript 邏輯,死摳裡面的代碼,揪出來這些參數是怎麼構造的,找出思路來了之後再用爬蟲模擬或重寫就行了。如果你解出來了,那麼直接模擬的方式效率會高非常多,這裡面就需要一些 JavaScript 基礎了,當然有些網站加密邏輯做的太牛逼了,你可能花一個星期也解不出來,最後放棄了。那這樣解不出來或者不想解,那咋辦呢?這時候可以有一種簡單粗暴的方法就是直接用模擬瀏覽器的方式來爬取,比如用 Puppeteer、Pyppeteer、Selenium、Splash 等,這樣爬取到的原始碼就是真正的網頁代碼,數據自然就好提取了,同時也就繞過分析 Ajax 和一些 JavaScript 邏輯的過程。這種方式就做到了可見即可爬,難度也不大,同時模擬了瀏覽器,也不太會有一些法律方面的問題。但其實後面的這種方法也會遇到各種反爬的情況,現在很多網站都會去識別 webdriver,看到你是用的 Selenium 等工具,直接幹掉或不返回數據,所以你碰到這種網站還得來專門解一下這個問題。多進程、多線程、協程上面的情況如果用單線程的爬蟲來模擬是比較簡單的,但是有個問題就是速度慢啊。爬蟲是 IO 密集型的任務,所以可能大多數情況下都在等待網絡的響應,如果網絡響應速度慢,那就得一直等著。但這個空餘的時間其實可以讓 CPU 去做更多事情。那怎麼辦呢?多開點線程吧。所以這時候我們就可以在某些場景下加上多進程、多線程,雖然說多線程有 GIL 鎖,但對於爬蟲來說其實影響沒那麼大,所以用上多進程、多線程都可以成倍地提高爬取速度,對應的庫就有 threading、multiprocessing 了。異步協程就更牛逼了,用 aiohttp、gevent、tornado 等等的基本上你想搞多少並發就搞多少並發,但是還是悠著點,別把人家網站搞掛了。但速度提上來了不一定是好事,反爬接著肯定就要來了,封你 IP、封你帳號、彈驗證碼、返回假數據,所以有時候龜速爬似乎也是個解決辦法?分布式多線程、多進程、協程都能加速,但終究還是單機的爬蟲。要真正做到規模化,還得來靠分布式爬蟲來搞。分布式的核心是什麼?資源共享。比如爬取隊列共享、去重指紋共享等等。我們可以使用一些基礎的隊列或組件來實現分布式,比如 RabbitMQ、Celery、Kafka、Redis 等等,但經過很多人的嘗試,自己去實現一個分布式爬蟲,性能和擴展性總會出現一些問題,當然特別牛逼的除外哈。不少企業內部其實也有自己開發的一套分布式爬蟲,和業務更緊密,這種當然是最好了。現在主流的 Python 分布式爬蟲還是基於 Scrapy 的,對接 Scrapy-Redis、Scrapy-Redis-BloomFilter 或者用 Scrapy-Cluster 等等,他們都是基於 Redis 來共享爬取隊列的,總會多多少少遇到一些內存的問題。所以一些人也考慮對接到了其他的消息隊列上面,比如 RabbitMQ、Kafka 等等,解決一些問題,效率也不差。驗證碼爬蟲難免遇到反爬,驗證碼就是其中之一。要會反爬,那首先就要會解驗證碼。現在你可以看到很多網站都會有各種各樣的驗證碼了,比如最簡單的圖形驗證碼,要是驗證碼的文字規整的話,OCR 過一遍或者基本的模型庫都能識別,不想搞這個的話可以直接去對接個打碼平臺來搞,準確率還是有的。然而你可能現在都見不到什麼圖形驗證碼了,都是一些行為驗證碼,如某驗、某盾等等,國外也有很多,比如 reCaptcha 等等。一些稍微簡單一點的,比如滑動的,你可以找點辦法識別缺口,比如圖像處理比對、深度學習識別都是可以的。軌跡呢自己寫個模擬正常人行為的,加點抖動之類的。有了軌跡之後咋模擬呢,如果你牛逼,那麼可以直接去分析驗證碼的 JavaScript 邏輯,把軌跡數據錄入,那就能得到裡面的一些加密參數,直接拿著這些參數放到表單或接口裡面就能直接用了。當然也可以用模擬瀏覽器的方式來拖動,也能通過一定的方式拿到加密參數,或者直接用模擬瀏覽器的方式把登錄一起做了,拿著 Cookies 來爬也行。當然拖動只是一種驗證碼,還有文字點選、邏輯推理等,要是真不想搞,可以找打碼平臺來解出來再模擬,但畢竟花錢的,一些高手就會選擇自己訓練深度學習相關的模型,收集數據、標註、訓練,針對不同的業務訓練不同的模型。這樣有了核心技術,也不用再去花錢找打碼平臺了,再研究下驗證碼的邏輯模擬一下,加密參數就能解出來了。不過有的驗證碼難得很,有的我也沒搞定。當然有些驗證碼可能是請求過於頻繁而彈出來的,這種如果換個 IP 什麼的也能解。封 IP封 IP 也是個令人頭疼的事,行之有效的方法就是換代理了。首先可以把市面上免費的代理用起來,自己搭建一個代理池,收集現在全網所有的免費代理,然後加一個測試器一直不斷測試,測試的網址可以改成你要爬的網址。這樣測試通過的一般都能直接拿來爬你的目標網站。我自己也搭建過一個代理池,現在對接了一些免費代理,定時爬、定時測,還寫了個 API 來取,放在 GitHub 了:https://github.com/Python3WebSpider/ProxyPool,打好了 Docker 鏡像,提供了 Kubernetes 腳本,大家可以直接拿來用。付費代理也是一樣,很多商家提供了代理提取接口,請求一下就能獲取幾十幾百個代理,我們可以同樣把它們接入到代理池裡面。但這個代理也分各種套餐,什麼開放代理、獨享代理等等的質量和被封的機率也是不一樣的。有的商家還利用隧道技術搭了代理,這樣代理的地址和埠我們是不知道的,代理池是由他們來維護的,比如某布雲,這樣用起來更省心一些,但是可控性就差一些。還有更穩定的代理,比如撥號代理、蜂窩代理等等,接入成本會高一些,但是一定程度上也能解決一些封 IP 的問題。不過這些背後也不簡單,為啥一個好好的高匿代理就是莫名其妙爬不了,背後的一些事就不多講了。有些信息需要模擬登錄才能爬嘛,如果爬的過快,人家網站直接把你的帳號封禁了,就啥都沒得說了。比如爬公眾號的,人家把你 WX 號封了,那就全完了。還有種方法就是看看別的終端,比如手機頁、App 頁、wap 頁,看看有沒有能繞過登錄的法子。另外比較好的方法,那就是分流。如果你號足夠多,建一個池子,比如 Cookies 池、Token 池、Sign 池反正不管什麼池吧,多個帳號跑出來的 Cookies、Token 都放到這個池子裡面,用的時候隨機從裡面拿一個。如果你想保證爬取效率不變,那麼 100 個帳號相比 20 個帳號,對於每個帳號對應的 Cookies、Token 的取用頻率就變成原來的了 1/5,那麼被封的概率也就隨之降低了。奇葩的反爬上面說的是幾種比較主流的反爬,當然還有非常多奇葩的反爬。比如返回假數據、返回圖片化數據、返回亂序數據、返回罵人的數據、返回求饒的數據,那都具體情況看著辦吧。這些反爬也得小心點,之前見過一個反爬直接返回 rm -rf / 的也不是沒有,你要是正好有個腳本模擬執行返回結果,後果自己想像哈。JavaScript 逆向說到重頭了。隨著前端技術的進步和網站反爬意識的增強,很多網站選擇在前端上下功夫,那就是在前端對一些邏輯或代碼進行加密或混淆。當然這不僅僅是為了保護前端的代碼不被輕易盜取,更重要的是反爬。比如很多 Ajax 接口都會帶著一些參數,比如 sign、token 等等,這些前文也講過了。這種數據我們可以用前文所說的 Selenium 等方式來爬,但總歸來說效率太低了,畢竟它模擬的是網頁渲染的整個過程,而真實的數據可能僅僅就藏在一個小接口裡。如果我們能夠把一些接口的參數真正找出其中的邏輯,用代碼來模擬執行,那效率就會有成倍的提升,而且還能在一定程度上規避上述的反爬現象。Webpack 是一方面,前端代碼都被壓縮和轉碼成一些 bundle 文件,一些變量的含義已經丟失,不好還原。然後一些網站再加上一些 obfuscator 的機制,把前端代碼變成你完全看不懂的東西,比如字符串拆散打亂、變量十六進位化、控制流扁平化、無限 debug、控制臺禁用等等,前端的代碼和邏輯已經面目全非。有的用 WebAssembly 等技術把前端核心邏輯直接編譯,那就只能慢慢摳了,雖然說有些有一定的技巧,但是總歸來說還是會花費很多時間。但一旦解出來了,那就萬事大吉了。怎麼說?就像奧賽題一樣,解出來升天,解不出來 GG。很多公司招聘爬蟲工程師都會問有沒有 JavaScript 逆向基礎,破解過哪些網站,比如某寶、某多、某條等等,解出來某個他們需要的可能就直接錄用你。每家網站的邏輯都不一樣,難度也不一樣。App當然爬蟲不僅僅是網頁爬蟲了,隨著網際網路時代的發展,現在越來越多的公司都選擇將數據放到 App 上面,甚至有些公司只有 App 沒有網站。所以數據只能通過 App 來爬。咋爬呢?基本的就是抓包工具了,Charles、Fiddler 一把梭,抓到接口之後,直接拿來模擬就行了。如果接口有加密參數怎麼辦呢?一種方法你可以邊爬邊處理,比如 mitmproxy 直接監聽接口數據。另一方面你可以走 Hook,比如上 Xposed 也可以拿到。那爬的時候又怎麼實現自動化呢?總不能拿手來戳吧。其實工具也多,安卓原生的 adb 工具也行,Appium 現在已經是比較主流的方案了,當然還有其他的某精靈都是可以實現的。最後,有的時候可能真的就不想走自動化的流程,我就想把裡面的一些接口邏輯摳出來,那就得搞逆向了,IDA Pro、jdax、FRIDA 等工具就派上用場了,當然這個過程和 JavaScript 逆向一樣很痛苦,甚至可能得讀彙編指令。搞一個案例掉一把頭髮也不是不可能的。智能化上面的這一通,都搞熟了,恭喜你已經超過了百分之八九十的爬蟲玩家了,當然專門搞 JavaScript 逆向、App 逆向的都是站在食物鏈頂端的男人,這種嚴格來說已經不算爬蟲範疇了,這種神我們就不算在裡面了,反正我不是。除了上面的一些技能,在一些場合下,我們可能也需要結合一些機器學習的技術,讓我們的爬蟲變得更智能起來。比如現在很多博客、新聞文章,其頁面結構相似度比較高,要提取的信息也比較類似。比如如何區分一個頁面是索引頁還是詳情頁?如何提取詳情頁的文章連結?如何解析文章頁的頁面內容?這些其實都是可以通過一些算法來計算出來的。所以,一些智能解析技術也營運而生,比如提取詳情頁,一位朋友寫的 GeneralNewsExtractor 表現就非常好。假如說我來了一個需求,我要爬取一萬個新聞網站數據,要一個個寫 XPath 嗎?寫死我吧。如果有了智能化解析技術,在容忍一定錯誤的條件下,完成這個就是分分鐘的事情。總之,如果我們能把這一塊也學會了,我們的爬蟲技術就會如虎添翼。運維比如寫完一個爬蟲,怎樣去快速部署到 100 臺主機上跑起來。比如怎樣監控一些爬蟲的佔用內存、消耗的 CPU 狀況。比如爬蟲出現了問題,怎樣能及時收到通知,怎樣設置科學的報警機制。這裡面,部署大家各有各的方法,比如用 Ansible 當然可以。如果用 Scrapy 的話有 Scrapyd,然後配合上一些管理工具也能完成一些監控和定時任務。不過我現在用的更多是還是 Docker + Kubernetes,再加上 DevOps 一套,比如 GitHub Actions、Azure Pipelines、Jenkins 等等,快速實現分發和部署。定時任務大家有的用 crontab,有的用 apscheduler,有的用管理工具,有的用 Kubernetes,我的話用 Kubernetes 就多一些了,定時任務也是很好實現。至於監控的話,也有很多,專門的一些爬蟲管理工具自帶了一些監控和報警功能。一些雲服務也帶了一些監控的功能。我用的是 Kubernetes + Prometheus + Grafana,什麼 CPU、內存、運行狀態,一目了然,報警機制在 Grafana 裡面配一下也很方便,支持 Webhook、郵件甚至某釘。數據的存儲和監控,用 Kafka、Elasticsearch 個人感覺也挺方便的,我主要用的是後者,然後再和 Grafana 配合起來,數據爬取量、爬取速度等等監控也都一目了然。結語至此,爬蟲的一些涵蓋的知識點也就差不多了,怎麼樣,梳理一下,是不是計算機網絡、編程基礎、前端開發、後端開發、App 開發與逆向、網絡安全、資料庫、運維、機器學習都涵蓋到了?上面總結的可以算是從爬蟲小白到爬蟲高手的路徑了,裡面每個方向其實可研究的點非常多,每個點做精了,都會非常了不起。爬蟲往往學著學著,就成為了一名全棧工程師或者全乾工程師,因為你可能真的啥都會了。但是沒辦法啊,都是被爬蟲逼的啊,如果不是生活所困,誰願意一身才華呢?

推薦閱讀

漫畫:程式設計師一時單身一時爽,一直單身...有點慘

2019年,又一個埋下伏筆的一年!

程式設計師有了孩子,老大叫玲玲,老二叫玲依,老三叫...

一個程式設計師要被打多少次臉?

親愛的,給我一個在看哈!

相關焦點

  • 就想寫個爬蟲,我到底要學多少東西啊?
    正因為涵蓋的方向多,因此學習的東西也非常零散和雜亂,很多初學者搞不清楚究竟要學習哪些知識,學習過程中遇到反爬也不知道用什麼方法來解決,本篇我們來做一些歸納和總結。初學爬蟲一些最基本的網站,往往不帶任何反爬措施。比如某個博客站點,我們要爬全站的話就順著列表頁爬到文章頁,再把文章的時間、作者、正文等信息爬下來就可以了。那代碼怎麼寫呢?
  • 乾貨 | 那些你不知道的爬蟲反爬蟲套路
    我曾經在一篇文章提到過:用python寫的爬蟲是最薄弱的,因為天生並不適合破解反爬蟲邏輯,因為反爬蟲都是用javascript來處理。然而慢慢的,我發現這個理解有點問題(當然我如果說我當時是出於工作需要而有意黑python你們信嗎。。。)。Python的確不適合寫反爬蟲邏輯,但是python是一門膠水語言,他適合捆綁任何一種框架。
  • 爬蟲學得好,入獄入得早,到底是個什麼樣子的梗?
    我們常說的爬蟲不是說的一個生物,而是說的網絡爬蟲,也叫網絡蜘蛛。我平常用的谷歌搜索和百度搜索就是爬蟲中的一種,網絡搜尋引擎通過爬蟲軟體更新自身的網站內容或網站的索引。並將自己所訪問的頁面保存下來,以便事後生成索引供用戶搜索。平時我們談到爬蟲學得好,入獄入得早,那為什麼搜尋引擎沒有這方面的擔憂呢?
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    其實之前有媒介找過我,說有機構覺得我寫的內容還不錯的,想投一點課程類的廣告,但是覺得我的閱讀量現在還是太少了,要再等等。所以對於給我留言希望我接廣告的朋友,我只能說,謝謝關心。而根據我自己的觀察,粉絲量和閱讀量至少還要再增加5倍以上,才能接到廣告,且等呢。
  • 寫網絡爬蟲程序的難度是怎麼分等級的
    寫網絡爬蟲程序的難度是怎麼分等級的 猿人學 發表於 2020-02-05 11:49:55 寫爬蟲,是一個非常考驗綜合實力的活兒。
  • 你每年要學多少學分啊,要學多少種啊
    我畢業已經7年多了,當時真是不願意學醫學及相關的專業,可是沒辦法高考不理想,沒什麼選擇,最後還是選了藥學,心想就是不學醫。對醫生沒有偏見,主要是怕學藝不精耽誤病人。本來也是不想去醫院工作的,可是命運啊,你他媽真不是東西,我不想幹嘛,就偏偏要幹嘛,無奈之下還是進了醫院。後來工作了,結婚了,感覺讀了這麼多年書實在是有點厭倦了,就想上了班,就踏踏實實工作,老老實實過生日子,可是進了醫院才知道,什麼叫活到老學到老,各種資格證,考的我是焦頭爛額,忙活了兩年也不錯考了個執業藥師,心想就這樣吧,有個證書混日子吧。沒想到還真是不行。
  • 使用superagent+cheerio 寫爬蟲
    作者: 劉一奇本文將會講解如何使用 superagent+cheerio 寫爬蟲。關於 cheerio 我們等會介紹~使用 superagent 獲取 JS 文件的內容使用 superagent 獲取頁面內容非常簡單,但是當我請求完頁面後發現,音頻和字幕的 URL 不在頁面上,而是通過 JS 動態渲染到頁面上的,我的爬蟲無法和 JS 通信,這該怎麼辦呢?
  • 爬蟲行業史
    在此跪謝大家的厚愛,記得幫我多點個「在看」啊,20個贊可以幫我省下一碗牛油麵啊,豬肉吃不起,每天只能靠牛油麵和二維碼度日。今天和大家聊聊爬蟲,單獨把「爬蟲」好好說說。上次偶然提了些後,後臺還是有很多朋友發消息來讓我們寫。
  • No.19:技術:儘量寫個小白也能看懂的爬蟲(20年5月更)
    爬蟲被人問了很多次了。為了避免每次被問都得敲一堆字(ಥ_ಥ) 於是乾脆直接寫一個總結算了,總結下我目前主要用的辦法,每個方法應該會通過一兩個案例講解。誰在問我就先上這篇,省點時間處理這篇cover不了的。在講爬蟲的時候我可能會穿插一些python的基礎知識。
  • 跟我學R爬蟲|AJAX與動態網頁簡介
    很早之前就寫過用rvest包實現對靜態網頁的抓取之類的文章,以至於很久之後看到那些文章的朋友還拿來套,以為換個網址也能達到同樣的抓取效果
  • 零基礎學 Python 爬蟲 I:了解爬蟲基礎
    廢話不多說,開始今天的正題,從題目大家應該已經猜到了,小編要開始更新一個新的系列《小白學 Python 爬蟲》,介於大家水平參差不齊,建議沒有 Python 基礎第一次接觸的同學先看下小編之前更新的《小白學 Python 系列
  • 網絡爬蟲違法?扯!繼續學習我的第一個爬蟲
    隨著資訊時代的迭代更新,人工智慧的興起,Python程式語言也隨之被人們廣泛學習,Python數據分析、Python web全棧、Python自動化運維等等都很受歡迎,其中還包括了Python爬蟲。但是很對人覺得Python爬蟲是違法的行為,也在懷疑自己到底要不要學爬蟲,之前有一篇文章特別火,就是《 只因寫了一段爬蟲,公司200多人被抓!》
  • Python新手學習網絡爬蟲要做什麼?
    二、比起html,js建議多少懂一點js比html難很多,但多少也要知道它的一些知識原理,有條件的推薦看下《JavaScript DOM編程藝術》和《Javascript高級程序設計》的前三章這兩本書,能讓你對js有一定的認識。
  • 長沙新東方:想知道學廚師到底要多少錢?
    學廚師到底要多少錢?這個問題還得具體情況具體分析。首先,要看你選擇的是一所什麼樣的學校。校園環境好,設施設備完善,師資力量雄厚,注重學生技能掌握情況,與市場接軌,與大型企業有合作關係,畢業後可以直接安排就業等等,這些因素都是衡量一所烹飪院校是否專業的標準,也是你學習費用需要多少的原因所在,它直接決定了院校的收費標準。
  • 10分鐘教你Python爬蟲(上)-- HTML和爬蟲基礎
    舉個例子來說,比如你想每天看到自己喜歡的新聞內容,而不是各類新聞平臺給你推送的各種各樣的信息,你就可以寫一個爬蟲去爬取這些關鍵詞的內容,使自己能夠按時獲得自己感興趣的內容,等等。總的來說,爬蟲能用來進行數據監控,數據收集,信息整合,資源採集。然後,我們一起來總結一下我們瀏覽網頁的過程。
  • 學鋼琴到底要花多少錢?
    有琴童家長問:在北京學琴,500塊一節鋼琴課,貴嗎?
  • 將網絡爬蟲應用到生活 一切也都變得有趣起來~
    @森羴在用 Python 寫網頁爬蟲之前,我只用來寫過了一個駕校約車的腳本,讓當時的我不懼上萬的學車同僚,在約車環節沒有輸在起跑線上。接著那段時間,我女朋友的領導每天下班都會下任務,要收集 100 條有招聘需求的信息,第二天檢查。看到她熬夜百度+複製粘貼到半夜,心疼死了。想到了某個牛人說:一切重複性的工作都可以用程序來完成。
  • 10 個爬蟲工程師必備的工具
    我當初決定學爬蟲是覺得夠神奇、有意思,能爬圖片、視頻,能下載文章、表格等等。陸陸續續寫了不少爬蟲文章,如果你還沒看過,可以在文底的「推薦閱讀」中看看。過程中發現了很多能夠提升爬蟲效率的工具,今天分享給你。
  • Python轉行指南:從0基礎到入職名企,我有這些經驗想分享給你!
    都說牛逼的程式設計師是不能按照語言來分的,但是沒辦法,作為菜鳥的我有語言潔癖。自從我在大三暑假實習(做C++測試)的時候接觸了python,就再也不想寫別的語言了。寫c++再寫python,讓我感覺就像學了彙編之後再學c,估計用了c之後再也不想寫彙編了。於是買了一本《python核心編程》我的python學習之路就開始了。
  • 寫一段Python爬蟲前,需要準備什麼?
    PyCharm 編輯器Python 2.7(3.X也行) 集成環境對,只需要準備這兩個東西就可以開始敲下你人生的第一段Python代碼了。了解爬蟲的工作原理爬蟲呢,其實就是模仿正常瀏覽者去自動獲取站點中我們需要的數據,對數據進行處理,方便以後的分析或別的用途。模仿正常瀏覽者,就需要知道正常的瀏覽者都帶有什麼標示,都有什麼習慣。