<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                爬蟲的主要作用就是在網站互聯的大網上收集、分析各種網頁數據 工作原理也很簡單,給爬蟲一個URL,通過HTTP協議把HTML頁面下載下來,分析里面的元素,比如說表單、表格、鏈接等 因為HTML頁面是純文本的,可以把它形成一棵DOM樹,也可以使用正則表達式去獲取想要的東西。 最重要的事,拿到這個頁面的其他的鏈接,然后拿這些鏈接對應的HTML頁面,繼續分析,然后循環下去,把所有的頁面找出來。 所以一個爬蟲最基本的能力有: - 通過HTTP協議訪問網頁 - 分析HTML網頁 ## 反爬蟲 一般而言,如果在網站的根目錄下放一個robots.txt,里面定義好那些內容對爬蟲開放,當然這只是約定俗成的規范,而不是標準,所以總有爬蟲不守規范。 作為程序,爬蟲訪問起網絡來,比人類快很多,如果爬蟲很多,會給網站帶來非常大的流量,所以網站會想到很多辦法來**反爬蟲** 最開始的時候,爬蟲在發出HTTP請求的時候,沒有偽裝自己,不會修改User Agent,所以網競爭力可以很容易的禁止我們。 > User Agent其實就是HTTP Header的一個字符串,讓服務器能識別客戶端的操作系統及版本,瀏覽器及版本,瀏覽器引擎、語音等。可以針對性的返回桌面版或者手機版的網頁。 后來我們也可以把user Agent設置得和人類瀏覽器甚至偽裝成Goolge的爬蟲。 網站還可以分析我們的行為,比如說一秒之內有多少次請求,就認為是爬蟲。 ## 陷阱、驗證碼 有些網站會在的網站發回的HTML頁面里面包含一些人類肉眼看不到的鏈接,人類看不到,所以不會點擊,但是爬蟲能分析所有的鏈接,所以會踩到陷阱里面去。 這樣,服務器就可以名正言順的**封IP** 還有一招就是驗證碼,如果一段時間訪問次數超過某個閾值,立刻顯示一個圖形驗證碼。現在驗證越來越復雜,就算使用OCR也不行。 我們可以做分布式,讓每個機器的爬蟲運行得慢一點,不要觸發封鎖策略。 還可以使用代理,讓IP不斷變化 網站還有一種策略是,識別出是爬蟲之后,返回一些假數據,和真實數據混在一起。 ## selenium 隨著互聯網技術發展,現在訪問一個URL后,返回的HTML特別少,JS特別多,從HTML中幾乎找不到有用的東西。 原來,網站都用JS在瀏覽器端渲染了。 這些JS通過AJAX方式訪問后端網站的API,返回的都是JSON,只需要弄清API的輸入和輸出,直接調用API就可以拿到數據。 當時直接調用API的時候,也是有很多麻煩,比如需要進行認證,例如發個token 后來,干脆使用**無界面瀏覽器**,也就是內嵌瀏覽器,這個瀏覽器不需要界面顯示,可以程序中靜悄悄地執行。這樣,就可以相當于一個真正的人類在請求網頁,把JS下載下來,就在無界面瀏覽器中執行,等待渲染完了,就可以拿到HTML做后續的分析了
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看