爬蟲經常使用庫介紹

 

文章目錄

  • urllib
  • Requests
  • BeautifulSoup
  • selenium

 

urllib

Urllib是 python 內置的庫,在 Python 這個內置的 Urllib 庫中有這麼 4 個模塊css

request:request模塊是咱們用的比較多的,就是用它來發起請求,因此咱們重點說說這個模塊html

error:error模塊就是當咱們在使用 request 模塊遇到錯了,就能夠用它來進行異常處理python

parse:parse模塊就是用來解析咱們的 URL 地址的,好比解析域名地址啦,URL指定的目錄等git

robotparser:這個用的就比較少了,它就是用來解析網站的 robot.txtgithub

瞭解了 urllib 以後
咱們就能夠用 python 代碼來模擬請求了
在這裏插入圖片描述web

Requests

Requests這個庫比咱們上次說的 urllib 但是要牛逼一丟丟的,畢竟 Requests 是在 urllib 的基礎上搞出來的。經過它咱們能夠用更少的代碼模擬瀏覽器操做。
對於不是 python 的內置庫,咱們須要安裝一下,直接使用 pip 安裝正則表達式

pip install requests

一行代碼 Get 請求chrome

r = requests.get('https://www.sina.com.cn/')

一行代碼 Post 請求瀏覽器

r = requests.post('https://www.sina.com.cn/', data = {'key':'value'})

僞裝本身是瀏覽器服務器

>>> url = 'https://www.sina.com.cn/'

>>> headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3620.400'}

>>> r = requests.get(url, headers=headers)

獲取服務器響應文本內容

>>> import requests

>>> r = requests.get('https://www.sina.com.cn/')

>>> r.text

在這裏插入圖片描述

BeautifulSoup

利用正則表達式去提取信息太特麼麻煩了
在這裏插入圖片描述
有沒有什麼別的方式更方便過濾咱們想要的內容啊
emmmm~
你還別說還真有有一個高效的網頁解析庫它的名字叫作
BeautifulSoup
它是一個能夠從 HTML 或 XML 文件中提取數據的 Python 庫
首先咱們要安裝一下這個庫

pip install beautifulsoup4

beautifulsoup支持不一樣的解析器

好比

對 HTML 的解析

對 XML 的解析

對 HTML5 的解析
在這裏插入圖片描述
通常狀況下咱們用的比較多的是 lxml 解析器,咱們先來使用一個例子讓你體驗一下beautifulsoup 的一些經常使用的方法
先安裝一下

pip install beautifulsoup4

pip install lxml

接着將 html 的源代碼傳給 BeautifulSoup
此時此刻就不須要本身寫正則匹配了
咱們要作的就是從這個對象直接獲取咱們要的內容,獲取標題的內容
好比咱們有這樣一段HTML代碼
在這裏插入圖片描述接着將 html 的源代碼傳給 BeautifulSoup,此時此刻就不須要本身寫正則匹配了,咱們要作的就是從這個對象直接獲取咱們要的內容獲取標題的內容
在這裏插入圖片描述在這裏插入圖片描述
而後咱們能夠獲取標籤內容,連接內容以及文本內容
在這裏插入圖片描述
除了find方法以外,若是你對css比較熟悉也可使用 select 方法
在這裏插入圖片描述
在這裏插入圖片描述

selenium

什麼是 selenium ?其實它就是一個自動化測試工具,支持各類主流的瀏覽器,遇到了 python,selenium 變成了爬蟲利器咱們先來安裝一下

pip install selenium

接着咱們下載Chrome驅動

Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox: https://github.com/mozilla/geckodriver/releases
Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/

接着咱們來嘗試一下代碼
在這裏插入圖片描述
咱們發現自動彈出了一個Chrome瀏覽器窗口
在這裏插入圖片描述
哇,好神奇,能夠看到它本身打開了 Chrome 瀏覽器,訪問了百度而且搜索了波多野結衣的照片

在這裏插入圖片描述
這就是 selenium 的魅力

咱們來看下咱們剛剛寫的代碼

在這裏插入圖片描述
就這樣完成了一次自動的百度搜索
當咱們使用驅動打開了一個頁面,這時候其實沒什麼鳥用,由於咱們要對那些元素進行操做
就像剛剛咱們要獲取輸入框而後輸入一些內容還有獲取按鈕點擊什麼的,selenium 提供了挺多方法給咱們獲取的,當咱們要在頁面中獲取一個元素的時候可使用這些方法。
在這裏插入圖片描述
想要在頁面獲取多個元素呢

就能夠這樣
在這裏插入圖片描述

相關文章
相關標籤/搜索