天天看點

Python爬蟲之資料提取概述

資料提取概述

知識點
  • 了解 響應内容的分類
  • 了解 xml和html的差別

1. 響應内容的分類

在發送請求擷取響應之後,可能存在多種不同類型的響應内容;而且很多時候,我們隻需要響應内容中的一部分資料
  • 結構化的響應内容
  • json字元串
  • 可以使用re、json等子產品來提取特定資料
  • json字元串的例子如下圖
  • xml字元串
  • 可以使用re、lxml等子產品來提取特定資料
  • xml字元串的例子如下
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>      
  • 非結構化的響應内容
  • html字元串
  • 可以使用re、lxml等子產品來提取特定資料
  • html字元串的例子如下圖
知識點:了解 響應内容的分類

2. 認識xml以及和html的差別

要搞清楚html和xml的差別,首先需要我們來認識xml

2.1 認識xml

xml是一種可擴充标記語言,樣子和html很像,功能更專注于對傳輸和存儲資料
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>      

上面的xml内容可以表示為下面的樹結構:

Python爬蟲之資料提取概述

2.2 xml和html的差別

二者差別如下圖
Python爬蟲之資料提取概述
  • html:
  • 超文本标記語言
  • 為了更好的顯示資料,側重點是為了顯示
  • xml:
  • 可擴充标記語言
  • 為了傳輸和存儲資料,側重點是在于資料内容本身
知識點:了解 xml和html的差別

2.3 常用資料解析方法

  • xml:
  • 可擴充标記語言
  • 為了傳輸和存儲資料,側重點是在于資料内容本身
知識點:了解 xml和html的差別

2.3 常用資料解析方法