原创 爲什麼每一個爬蟲工程師都應該學習 Kafka

這篇文章不會涉及到Kafka 的具體操作,而是告訴你 Kafka 是什麼,以及它能在爬蟲開發中扮演什麼重要角色。 一個簡單的需求 假設我們需要寫一個微博爬蟲,老闆給的需求如下: 開發爬蟲對你來說非常簡單,於是三下五除二你就把爬蟲開發好了:

原创 新聞網頁通用抽取器GNEv0.04版更新,支持提取正文圖片與源代碼

GeneralNewsExtractor以下簡稱GNE是一個新聞網頁通用抽取器,能夠在不指定任何抽取規則的情況下,把新聞網站的正文提取出來。 我們來看一下它的基本使用方法。 安裝 GNE 使用 pip 安裝: pip install --u

原创 寫了那麼久的Python,你應該學會使用yield關鍵字了

寫過一段時間代碼的同學,應該對這一句話深有體會:程序的時間利用率和空間利用率往往是矛盾的,可以用時間換空間,可以用空間換時間,但很難同時提高一個程序的時間利用率和空間利用率。 但如果你嘗試使用生成器來重構你的代碼,也許你會發現,在一定程度上

原创 新聞類網頁正文通用抽取器

項目起源 開發這個項目,源自於我在知網發現了一篇關於自動化抽取新聞類網站正文的算法論文——《基於文本及符號密度的網頁正文提取方法》 這篇論文中描述的算法看起來簡潔清晰,並且符合邏輯。但由於論文中只講了算法原理,並沒有具體的語言實現,所以我使

原创 MongoDB遊標超時問題的4種解決方法

這篇文章主要給大家介紹了關於MongoDB遊標超時問題的4種解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧 當我們使用Python

原创 爲什麼Python 3.6以後字典有序並且效率更高?

在Python 3.5(含)以前,字典是不能保證順序的,鍵值對A先插入字典,鍵值對B後插入字典,但是當你打印字典的Keys列表時,你會發現B可能在A的前面。 但是從Python 3.6開始,字典是變成有順序的了。你先插入鍵值對A,後插入鍵值

原创 在Python中合併字典模塊ChainMap的隱藏坑【推薦】

在Python中,當我們有兩個字典需要合併的時候,可以使用字典的 update 方法,接下來通過本文給大家介紹在Python中合併字典模塊ChainMap的隱藏坑,感興趣的朋友一起看看吧 在Python中,當我們有

原创 爲什麼你需要少看垃圾博客以及如何在Python裏精確地四捨五入

今天又有一個Python初學者被中文技術博客中的垃圾文章給誤導了。 這位初學者的問題是: 在Python中,如何精確地進行浮點數的四捨五入,保留兩位小數? 如果你在Google或者百度上搜索,你會發現大量的來自CSDN或者簡書上面的文章講到

原创 數據工程師妹子養成手記——數據庫篇

這篇文章沒有代碼,請放心閱讀。 程序員最寶貴的東西是生命,生命屬於程序員只有一次。一個程序員的一生應該這樣度過:當她回首往事的時候,她不會因爲搭建環境浪費時間而悔恨,也不會因爲集羣無法運行而羞恥。這樣,在她開發的時候,她能夠說:“我的整個生

原创 一行js代碼識別Selenium+Webdriver及其應對方案

有不少朋友在開發爬蟲的過程中喜歡使用Selenium + Chromedriver,以爲這樣就能做到不被網站的反爬蟲機制發現。 先不說淘寶這種基於用戶行爲的反爬蟲策略,僅僅是一個普通的小網站,使用一行Javascript代碼,就能輕輕鬆鬆識

原创 在Airtest中如何使用無線模式控制手機

在使用Airtest超快速開發App爬蟲文章的最後,我們留了一個尾巴:如何啓動Airtest的無線模式,不用USB線就能控制手機? 本文將會講到具體的做法。做法分爲兩種:第一種是在Airtest的IDE中控制手機。第二種是在Python代碼

原创 全面超越Appium,使用Airtest超快速開發App爬蟲

想開發網頁爬蟲,發現被反爬了?想對 App 抓包,發現數據被加密了?不要擔心,使用 Airtest 開發 App 爬蟲,只要人眼能看到,你就能抓到,最快只需要2分鐘,兼容 Unity3D、Cocos2dx-*、Android 原生 App、

原创 項目管理必備——使用燃盡圖監控項目整體進度

在《跳出任務管理的泥沼,擁抱甘特圖的懷抱》一文中,我談到了使用甘特圖來規劃任務。甘特圖更多的關注每一個任務的進度上。那麼如果我希望瞭解項目整體的進度,應該如何選擇呢?此時就需要引入另一個簡單又強大的工具:燃盡圖(Burn down char

原创 徹底搞懂Scrapy的中間件(三)

在前面兩篇文章介紹了下載器中間件的使用,這篇文章將會介紹爬蟲中間件(Spider Middleware)的使用。 爬蟲中間件 爬蟲中間件的用法與下載器中間件非常相似,只是它們的作用對象不同。下載器中間件的作用對象是請求request和返回r

原创 徹底搞懂Scrapy的中間件(二)

在上一篇文章中介紹了下載器中間件的一些簡單應用,現在再來通過案例說說如何使用下載器中間件集成Selenium、重試和處理請求異常。 在中間件中集成Selenium 對於一些很麻煩的異步加載頁面,手動尋找它的後臺API代價可能太大。這種情況下