<output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
        <dl id="ilehw"><font id="ilehw"></font></dl>
          1. 高手問答第 214 期 —— 和你聊聊 Python 絕技:爬蟲之術

            局長 發布于 10/10 00:32
            閱讀 5K+
            收藏 13

            OSCHINA 本期高手問答(2018 年 10 月 10 日 — 10 月 16 日)我們請來了@梁睿坤 為大家解答關于 Python 爬蟲方面的問題。

            梁睿坤,現任增增智能科技CEO,從事機器人、視覺智能、語音智能及 IoT 等技術的產品研發與企業經營方面的工作,曾任優晟網絡、越維科技公司的CTO。雖然長期身任技術管理職位,但十多年來一直堅持參與第一線的研發工作。擅長敏捷開發模式,推崇端到端及多領域融合的個人技術發展路向,倡導實踐先行的學習方法,樂于分享所學所悟,在 Python 與 Javascript 方面有深厚的理論基礎與實踐經驗。

            爬蟲雖說并不是一門新的技術,但卻是一門伴隨互聯網而生、實用性最強的一門技術。數據分析、大數據、機器學習都離不開數據的“喂養”。數據無處不在,唾手可得,但要從互聯網這個無邊無際的數據海洋中采集我們所需要的海量的數據卻絕非易事,如何能精準、高效、合理、持續而低成本地從互聯網中采集所需的數據,這就是爬蟲系統要實現的最基本目標。

            本期問題內容:

            1. 網絡爬蟲的應用方向
            2. 網絡爬蟲開發的關鍵技術點
            3. 網絡爬蟲系統的設計要點
            4. 部署網絡爬蟲的要點

            或有其他相關問題,也歡迎大家積極提問。

            為了鼓勵踴躍提問,@博文視點 會在問答結束后從提問者中抽取 5 名幸運會員贈予《蟲術——Python絕技》一書。

            購買鏈接:京東
            OSChina 高手問答一貫的風格,不歡迎任何與主題無關的討論和噴子。
            下面歡迎大家就 Python 爬蟲方面的問題向@梁睿坤 提問,請直接回帖提問。

            加載中
            0
            博文視點
            博文視點

            214 期 —— 和你聊聊 Python 絕技:爬蟲之術

            @噴子   @從入門到轉行  @gotounix   @AmCoder   @大盤  

            恭喜以上五位網友或獲得《蟲術——Python絕技》圖書一本 

            請私信 @博文視點   告知快遞信息(格式:姓名+電話+地址)! 

            2
            Fover
            Fover

            @梁睿坤 如果目標網頁用到了滑塊驗證碼 你們是怎么解決的?

            xiaoshiyue
            xiaoshiyue
            有第三方提供啊
            1
            噴子
            噴子

            @梁睿坤 我最想知道的是python這種執行效率低的語言,真的能被寫起來簡單這個優勢蓋下去嗎,效率低代表著實現同樣的負載/運算能力,需要更多的機器才能完成,是不是大公司都不在意這方面的成本,更早的退出功能要比少用物理機器重要的多?

            m
            moshengren
            最大的問題不是開發語言,而是人,很多公司的很多代碼寫的是很坑的,哪怕用性能很好的開發語言寫,他里面給你搞很多無用的邏輯,不光維護性不好,性能也很差。用python的話,如果找幾個有經驗的寫,比搞一幫寫垃圾代碼的c++要性能好的多,而且成本也省,當然很多老板是寧可多搞些人,場面大比較喜歡
            從入門到轉行
            從入門到轉行
            如果需求經常變動,我感覺還是py這種開發效率高的好一點,用其他語言實現,花費時間更長,成本更高(因為程序員工資高~~~)
            梁睿坤
            梁睿坤
            最后,如果考慮到運行成本跑python也未必一定需要一堆的機器,那得最具體總是具體分析。到低需要多少機器來才適合你的項目那你們可以用Docker來做些運行環境具體測算一下。根據我的經驗在Linux上跑python和ruby這類項目確實不需要太多擔憂性能的問題。
            梁睿坤
            梁睿坤
            另一方面,至于公司規模與語言選擇也是沒有必然聯系的,我認為談性能只能與“開發規模”和“需求的復雜性”相掛鉤。如果您身在大公司的話那更應該考慮尋找一些在python方面的能人,畢竟取決程序好壞的最終因素是人而不是語言本身。
            梁睿坤
            梁睿坤
            執行速度高的語言開發出來的程序也未必性能高。其次,python 由于學習曲線平緩語言簡潔,第三方資源豐富在程序的總體開發時間上會比其它具有天生速度優勢的語言來說會更有優勢,畢竟大道至簡,我們做開發也一樣應該追求平衡而不是極端。
            下一頁
            1
            梁睿坤
            梁睿坤

            @Fover 你這是一個問得非常好的問題!對于驗證滑塊可以謂是現在反爬的一招“絕招”,之所以說它“絕”是它非常的麻煩,在此之前我也曾好好進行過公關,原本也想寫到書中的但我的方法太過復雜,后來認為并不一定是一個好方法就略掉了。我講一個思路,你可以試試。我的做法是有兩種:

            方法一:這個方法比較白癡但簡單,首先是降低爬網的頻次,然后采用ADSL撥號服務器更換IP,雖然說不可能完全避開驗證框,但它出現的機率會小很多而且不怎么需要改代碼。

            方法二:進行鼠標模擬,滑塊大多都在同一水平線上,也就是說是水平運動的,可以先鎖定屏幕的Y值,然后先模擬mousedown等畫面出現匹配圖后截圖計算出初始的mouseX和滑倒匹配位置上的mouxeX1,得到這個坐標后模擬鼠標滑動過去就行了。這個方法有點復雜,需要在編寫之前收集大量的截圖來觀察一下滑動驗證框的匹配位置和查看當前的HTML代碼。

            liverxing
            liverxing
            滑塊驗證知識一個,現在有圖片驗證,智能選擇驗證(例如阿里的數據風控服務的驗證碼功能),答案驗證,拼圖驗證,這些你都繞不過去的。
            Fover
            Fover
            謝謝解答。
            0
            clouddyy
            clouddyy

            @梁睿坤 能否利用pypy加速爬蟲效率??

            梁睿坤
            梁睿坤
            pypy我還沒嘗試過在具體項目中,不過臨淵羨魚,不如退而結網,在你的項目里弄個分支出來試試不就知道效果了 ^_^
            0
            w
            walk_lai

            @梁睿坤 請問如何解決像淘寶商品頁面那樣,需要移動鼠標到相應位置才進行加載真正圖像的情況呢?

            撿垃圾的程序員
            這個圖片 好像并不是移到才顯示處理吧 直接右鍵審查元素就能看到 地址復制出來 去掉第一個.jpg后面的后綴就是大圖 正則應該就可以
            0
            從入門到轉行
            從入門到轉行

            @梁睿坤 請問如果需要實時采集國內A股數據,如何在保證質量的情況下降低成本(帶寬,存儲,服務器等)?

            梁睿坤
            梁睿坤
            也就是說 240*3000 = 720000 一天內你得拿到72萬的數據行,這數據一看不算大,但要考慮反爬因素如果你一分鐘去并發個3000爬一次鐵定被封,要估算到底要多少機器最簡單的做法是要先看看對方封你的臨界點是多少,如果500次就封的話,有10個獨立IP就基本足夠應付而且已經可以有冗余了。
            梁睿坤
            梁睿坤
            你這個需求如果要赴諸實施的話將是一個極為龐大的工程。如果要將全A股接近3千支股票的實時數據拉下來,那可以先算算你的IO,每支股票按每一分鐘刷新一次來計算的話,早盤是9:30到11:30共 2小時,120分鐘,午盤也是2小時,那全天就是一共4小時 240分鐘。
            0
            兩江總督小號-IT王力宏
            兩江總督小號-IT王力宏
            @梁睿坤 如何学习Python。。。java程序员
            梁睿坤
            梁睿坤
            學python極為容易,由其從C#或者java轉來過也不難,python 的參考書極多語法上幾個小時基本上就能入門了,python 最難學的反倒是她那個以億計算的第三方庫,想快速入門是沒有捷徑的,實踐才是王道,我的土辦法就是先學語法,然后定一個自己感興趣的課題,一邊開發一邊學。例如就寫個小爬蟲。
            0
            宇潤
            宇潤
            采集目标站有反爬虫封ip的话,代理ip一般从什么途径获取,成本怎么样?
            梁睿坤
            梁睿坤
            你可以參考我書中 5.2.3 化身萬千—蜘蛛世界的易容術 一節,里面有詳細的介紹
            0
            e
            e22333
            @梁睿坤 您好,请问对于爬虫新人,您有哪些建议? 比如:注重点,知识面等
            梁睿坤
            梁睿坤
            HTML、python 和Scrapy會是爬蟲最重要的知識點,HTML,python的資料眾多越了解對爬蟲知識的掌握就越好,而后者則可以參考我書的一二章,里面有詳細的介紹。
            返回頂部
            頂部
            广东快乐十分实时开奖

                  <output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
                  <dl id="ilehw"><font id="ilehw"></font></dl>

                            <output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
                            <dl id="ilehw"><font id="ilehw"></font></dl>