《python編程自動上手》筆記6 從Web抓取信息

20190107 qzd


本章:
a. webbrowser: 是python 自帶的,打開瀏覽器獲取指定頁面。
b. requests: 從因特網(wǎng)上下載文件和網(wǎng)頁。
c. Beautiful Soup: 解析HTML,即網(wǎng)頁編寫的格式。
d. selenium: 啟動并控制一個Web 瀏覽器。selenium 能夠填寫表單,并模擬鼠標在這個瀏覽器中點擊。

  1. webbrowser 模塊的 open() 函數(shù)可以啟動一個新瀏覽器,打開指定的URL。

  2. 用 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
  1. 將下載的文件保存到硬盤
    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() 關閉該文件

  2. HTML (超文本標記語言)
    HTML 文件是一個純文本文件,帶有 .html 文件擴展名。

  3. 用 BeautifulSoup 模塊解析 HTML
    模塊名稱 bs4
    a. 從HTML 創(chuàng)建一個 BeautifulSoup 對象
    b. 用select() 方法尋找元素
    c. 通過元素的屬性獲取數(shù)據(jù)

  4. 用selenium 模塊控制瀏覽器
    selenium 模塊讓python 直接控制瀏覽器,實際點擊鏈接,填寫登陸信息,幾乎就像是有個人類用戶在與頁面交互。與Requests 和 Beautiful Soup 相比,Selenium 允許你用高級得多的方式與網(wǎng)頁交互。但因為它啟動了Web 瀏覽器,假如你只是想從網(wǎng)絡上下載一些文件,會有點慢,并且難以在后臺運行。
    a. 啟動selenium 控制的瀏覽器
    b. 在頁面中尋找元素
    c. 點擊頁面
    d. 填寫并提交表單
    e. 發(fā)送特殊鍵
    f. 點擊瀏覽器按鈕

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容