iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

養爬蟲的人學爬蟲系列 第 10

【Day 10】第一次資料清洗-Requests-HTML

  • 分享至 

  • xImage
  •  

閒聊
昨天認識了Requests,也嘗試過發送GET、POST請求。
今天我們要來看Requests的延伸:Request-HTML。

什麼是Requests-HTML
昨天使用的Requests庫在爬蟲中不具有清洗功能,因此需要其他工具輔助。
這時候就可以使用Requests-HTML,他同時具有清洗功能和Requests的功能。

Requests-HTML

  • 下載
    第一步必須先在環境中安裝,可以使用以下方法。
pip install requests-html
  • 發送請求
    和Requsts不同的是,Requests-HTML在發送請求前,需要先宣告HTMLSession。之後再對回應的物件,進行getpost...等操作。
from requests_html import HTMLSession

session = HTMLSession #宣告HTMLSession
r = session.get('https://www.google.com.tw/?hl=zh_TW') #get請求

r = session.post('https://www.google.com.tw/?hl=zh_TW',data = {})  #post請求

資料清洗
簡單來說,「清洗」指的是把顯而易見的錯誤處理掉。
這邊會列舉幾個比較簡單的用法。

from requests_html import HTMLSession

session = HTMLSession #宣告HTMLSession
r = session.get('https://www.google.com.tw/?hl=zh_TW') #get請求
print(r.html.url) #印出網頁網址
print(r.html.links) #印出網頁內容的所有網址
print(r.text) #印出網頁內容(HTML)
print(r.html.text) #印出網頁文字內容

支援功能
Requests-HTML之所以會被廣泛使用還有一個原因,就是他支援多種不一樣的功能。

  1. JavaScript
  2. CSS選擇器
  3. Xpath選擇器
  4. 自定義模擬User-Agent
  5. 自動追蹤定向
  6. Cookie持久化
  7. 非同步請求

資料定位

  1. find()
  • selector:CSS選擇器。
  • containing:傳入字串,使定位的元素包含此字串,預設為None
  • clean:是否清除、忽略HTML的標籤,預設為False
  • first:是否指尋找到第一個定位到的元素,預設為False
  • _encoding:編碼格式,預設為None
  1. xpath()
  • selector:Xpath選擇器。
  • clean:是否清除、忽略HTML的標籤,預設為False
  • first:是否指尋找到第一個定位到的元素,預設為False
  • _encoding:編碼格式,預設為None
  1. search()
  • template:傳回第一個符合template的字串{}部分。
  1. search_all()
  • template:傳回符合template的字串{}部分。

結語
比起昨天的requests庫有著更多內容,學習起來也更需要時間!/images/emoticon/emoticon08.gif

明天!
【Day 11】認識Pandas模組

參考資料
python爬蟲 requests-html的使用https://www.796t.com/article.php?id=168412


上一篇
【Day 9】第一個爬蟲函式庫-Requests
下一篇
【Day 11】認識Pandas模組
系列文
養爬蟲的人學爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言