數據獲取——爬蟲-1

  • 從今天開始,我將在個人博客中更新個人學習筆記和個人學習心得。我如今正在學習崔慶才老師的爬蟲相關課程。相關視頻下載到本地大概也有將近一年了吧,對相關內容零零散散也看了有一些,整體來講沒啥印象,更別說體系了。從上週開始,我立志一個月內將其看完,更新學習筆記。*javascript

    立志不作馬來人!爬蟲在行動

    爬蟲的基本流程

  1. 發起請求:HTTP庫向目標站點發起請求(Request),Request中最好還包含一些配置信息,等待服務器響應。
  2. 獲取相應內容:若是服務器正常相應,會返回相應的頁面內容(Response);
  3. 解析內容:Response的類型有不少種,須要使用不一樣方法進行解析。
  4. 數據存儲:根據要求存儲爲相應的類型。

請求(Request)和響應(Response)

什麼是Request和Response

Figure 1 Request和Response之間關係

Request的類型

主要有GET和POST兩種,其他請求方法不經常使用,因此進行解釋java

  1. GET:方便
    • 請求內容所有包含在網址中
    • 能夠經過網址直接提交Request
  2. POST:安全
    • 請求內容包含在隱藏在FormData中
    • 構建FormData進行訪問

URL

URL:統一資源定位器,定位網頁中元素的下載位置。正則表達式

  • 如下全部內容都可以在任意網頁中按F12,在網頁後端中看到,chrome中通常在「Elements"、」Source「、」Console「和「Network」選項卡中查找,FireFox瀏覽器「網絡」、「控制檯」和「查看器」選項卡中查找。*
  • 下述四個四項內容均在「網絡」選項卡中,任意點開一個請求便可找到。 *chrome

    請求頭

    請求頭中包含一些配置信息,包括瀏覽器信息。數據庫

請求體

請求時額外提交的信息,如POST中的FormData。json

相應狀態(status_code)

有多種相應狀態:後端

  • 200:成功
  • 301:跳轉
  • 404:找不到頁面
  • 502:服務器錯誤

響應頭(headers)

服務器對瀏覽器的一些設置要求。瀏覽器

響應體(text)

請求的資源內容安全

什麼樣的數據能夠被抓取

  1. 網頁文本:HTML或者Json格式文本
  2. 圖片:獲取二進制文件(content),保存問相應圖片。
  3. 視頻:方法同圖片。
  4. 其餘:能請求到的一切文件。

解析方式

  1. 直接處理:特別簡單的網頁(內容以字典形式存儲)。
  2. json解析:
  3. 正則表達式:提取HTML代碼中相應的文本。
  4. BeautifulSoup、pyQuery、Xpath等解析庫

怎樣解決Javascript渲染問題

  1. 分析Ajax請求。
  2. 使用Selenium、WebDriver模擬一個瀏覽器加載。
  3. 使用Splash
  4. pyV八、Gost.py模擬加載

存儲數據

  1. 文本:純文本、XML格斯、Json格式等。
  2. 關係型數據庫:結構化表單存儲
  3. 非關係型數據庫:key-value型存儲
  4. 二進制文件:視頻、圖片
相關文章
相關標籤/搜索