初識爬蟲

爬蟲的概念:mysql

  爬蟲,又稱網頁蜘蛛或網絡機器人。ajax

  爬蟲是模擬人操做客戶端,向服務器發起網絡請求,抓取數據的自動化程序或腳本。正則表達式

  1.模擬:用爬蟲程序假裝人的行爲,避免被服務器識別爲爬蟲程序。redis

  2.客戶端:瀏覽器,app均可以實現人與服務器之間的交互行爲,應用客戶端從服務器獲取數據。sql

  3.自動化:數據量較小時能夠人工獲取數據,但每每在公司中爬取的數據量在百萬條,千萬條級別的,因此要程序自動化獲取數據。數據庫

爬蟲的價值 :
  互聯網中最有價值的就是數據
  爬蟲中首要任務就是要經過網絡取獲取模板服務器的數據;來爲本身創造價值編程

爬蟲的流程:
  首先明確 咱們的爬蟲是客戶端 要爬的數據在服務器上存儲,
  因此須要藉助網絡編程,底層的網絡協議已經有現成的封裝不須要本身寫,
  數據傳輸已經解決,問題是對方給個人數據我能不能看懂 個人數據對方能不能看懂
  絕大多數網絡傳輸都是採用的HTTP(*****)json

爬蟲分類:瀏覽器

1. 通用爬蟲 
  實例:百度,google
  功能:訪問網頁->抓取數據->數據處理->提供檢索服務服務器

2. 聚焦爬蟲:

  概念:
    1):聚焦爬蟲是指針對某一領域根據特定要求實現的爬蟲程序,抓取須要的數據(垂直領域爬取)。
  設計思路:
    1):肯定爬取的url,模擬瀏覽器向服務器發送請求獲取響應數據
    2):進行數據解析-->目標數據
    3):將目標數據持久化到本地-->存起來

HTTP 協議 超文本傳輸協議:


  1.明確要爬取的url地址

  2.發送請求
    瀏覽器發送請求

    第三方requests模塊 pip install requests

    內置的urllib模塊selenium (自動化測試模塊)

    用程序驅動瀏覽器發送請求針對移動app可使用代理服務器

    能夠截獲app端發送的請求信息 Charles(青花瓷)之因此用selenium是由於一些網站須要人機交互(點擊,拖拽等等操做)

    針對移動app可使用代理服務器 能夠截獲app端發送的請求信息 Charles(青花瓷)


  3.接收響應
    瀏覽器接受相應後會渲染頁面進行展現 沒法拿到數據 因此更多狀況下使用用瀏覽器來分析請求詳情
    requests和urllib都會直接返回響應體
    selenium 提供了find_element***的接口用於獲取數據


  4.解析數據
    re
    BeautifulSoup 封裝了經常使用的正則表達式
    移動端返回的/ajax返回的json數據 直接json.load


  5.存儲數據
    mysql等 關係型數據庫
    MongoDB redis 非關係型數據庫 通常用在高併發爬蟲中

數據採集:
  大數據時代來臨,數據就是核心,數據就是生產力,愈來愈多的企業開始注重收集用戶數據,而爬蟲技術是收集數據的一種重要手段。
數據的獲取:
  網絡公共資源都是爲用戶準備的,爲了不被爬蟲採集,服務端會設置很是多的圖靈測試,阻止爬蟲的惡意爬取,也便是反爬措施。爬蟲開發工程師在開發爬蟲時,須要解決這些反爬措施。咱們在開發爬蟲的過程當中,有很大一部分的工做就是處理這些反爬措施。
採集的速度:  大數據時代,須要巨大的數據量,動輒千萬條的級別,甚至上億條。若是採集速度跟不上,耗時過長,那麼就達不到商業要求。通常咱們會採起併發以及分佈式來解決速度上的問題。這也是爬蟲開發過程當中的另一個重心。

相關文章
相關標籤/搜索