20190107 qzd
本章:
a. webbrowser: 是python 自帶的,打開瀏覽器獲取指定頁面。
b. requests: 從因特網(wǎng)上下載文件和網(wǎng)頁。
c. Beautiful Soup: 解析HTML,即網(wǎng)頁編寫的格式。
d. selenium: 啟動并控制一個Web 瀏覽器。selenium 能夠填寫表單,并模擬鼠標在這個瀏覽器中點擊。
webbrowser 模塊的 open() 函數(shù)可以啟動一個新瀏覽器,打開指定的URL。
用 requests 模塊從Web 下載文件
a. requests.get() 函數(shù)接受一個要下載的URL 字符串,它返回一個Response 對象,其中包括了Web 服務器對你的請求做出的響應。
b. 通過檢查Response 對象的 status_code 屬性,可以了解對這個網(wǎng)頁的請求是否成功。
c. 如果請求成功,下載的頁面就作為一個字符串,保存在Response 對象的text 變量中。
d. 檢查錯誤有個簡單的方法,就是在Response 對象上調(diào)用 raise_for_status() 方法。
舉個例子:
import requests
res= requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
type(res)
------->result: <class 'requests.models.Response'>
res.status_code == requests.codes.ok
------->result: True
len(res.text)
------->result: 178981
print(res.text[:250])
------->result: The ………………………………project
將下載的文件保存到硬盤
open() / write() / close()
注:必須用“寫二進制”模式打開該文件,即向函數(shù)傳入字符串‘wb’,作為open() 的第二參數(shù)。目的是為了保存該文本中的“Unicode 編碼”。
write() 方法返回一個數(shù)字,表示寫入文件的字節(jié)數(shù)。
下載并保存到文件的完整過程如下:
a. 調(diào)用requests.get() 下載該文件
b. 用‘wb’ 調(diào)用 open(),以寫二進制的方式打開一個新文件
c. 利用 Respose 對象的 iter_content() 方法做循環(huán)
d. 在每次迭代中調(diào)用write(),將內(nèi)容寫入該文件
e. 調(diào)用close() 關閉該文件HTML (超文本標記語言)
HTML 文件是一個純文本文件,帶有 .html 文件擴展名。用 BeautifulSoup 模塊解析 HTML
模塊名稱 bs4
a. 從HTML 創(chuàng)建一個 BeautifulSoup 對象
b. 用select() 方法尋找元素
c. 通過元素的屬性獲取數(shù)據(jù)用selenium 模塊控制瀏覽器
selenium 模塊讓python 直接控制瀏覽器,實際點擊鏈接,填寫登陸信息,幾乎就像是有個人類用戶在與頁面交互。與Requests 和 Beautiful Soup 相比,Selenium 允許你用高級得多的方式與網(wǎng)頁交互。但因為它啟動了Web 瀏覽器,假如你只是想從網(wǎng)絡上下載一些文件,會有點慢,并且難以在后臺運行。
a. 啟動selenium 控制的瀏覽器
b. 在頁面中尋找元素
c. 點擊頁面
d. 填寫并提交表單
e. 發(fā)送特殊鍵
f. 點擊瀏覽器按鈕