1. 程式人生 > >Python web程式設計 基礎知識及其舉例

Python web程式設計 基礎知識及其舉例

web程式設計基礎知識

HTML基礎格式

HTML檔案以開頭,以結束。
head部分,HTML的頭部,定義網頁的標題及其他的一些屬性。
body是網頁的核心內容部分
所以格式大綱為:

CSS基礎格式

selector {property: value}
css規則由兩個主要的部分構成:選擇器以及一條或者多條申明
選擇器通常是您需要改變的HTML的樣式
每條申明由一個屬性和一個值構成

理解HTML和CSS之間的關係

HTML超文字標記語言,是描述網頁文件的一種標記語言。
CCS(Cascading Style Sheet)可譯為疊層樣式表或者級聯樣式表,它定義如何顯示HTML的元素,控制Web的外觀
一個書寫內容,一個裝扮
樣式表定義如何顯示HTML元素,樣式通常儲存在外部的.css檔案中,通過僅僅編輯一個簡單的css文件,外部樣式表使你有能力同時改變站點中的所有頁面的佈局和外觀
作為一個網頁開發者,你可以為每個元素定義樣式,並將之應用於你希望的任意多的頁面中。如需進行全域性的更新,你只需要簡單的改變樣式,然後網站中的所有元

如何開啟電腦開發者工具

筆者電腦windows chrome
開啟chrome,用快捷鍵Fn+F12開啟(重新按上面快捷鍵組合可以取消)
或者用快捷鍵(ctrl + shift +I)也可以開啟開發者工具

檢視開發者工具中的Elements對應的HTML。如果需要在web抓取程式中解析HTML,這很有幫助。得到HTML資訊之後,你需要弄清楚,那部分對應於頁面上你感興趣的資訊。然後擷取資訊,做相應的程式碼處理

如何找到HTML對應的網頁的感興趣的資訊

舉例說明:開啟http://weather.gov/天氣查詢網站,然後查詢郵政編碼94105多對應的天氣資訊。

  1. 進入網站並開啟開發者工具
    在這裡插入圖片描述
  2. 定位網頁中感興趣的資訊在HTML的位置
    在這裡插入圖片描述

通過開發者工具,我們看到網頁中負責氣溫部分的HTML是
“class=“myforecast-current-lrg”>62°F”,說明:氣溫包含在上述元素中,帶有myforecast-current-lrq 類,接下來就可以用Python中的BeattifulSoup模組找到相應的資訊

下面例項需要用到Python模組:requests, webbrowser, bs4

Python例項1:

#用requests.get()函式下載並儲存網頁內容

import requests
res = requests.get("'http://www.gutenberg.org/cache/epub/1112/pg1112.txt")
#檢查下載是否正確
res.raise_for_status()
#將下載的檔案儲存到硬碟
playFile = open('RomeoAndJuliet.txt', "wb")  #注意:這兒必須用“wb”格式開啟
for chunk in res.iter_content(100000):  #這是為了確保及時下載巨大的檔案,也不會消耗太多的記憶體
    playFile.write(chunk)
playFile.close()

Python例項2:

“I feeling lucky”Google 查詢
我們在瀏覽器中檢視一個主題的時候,我們一般不會只看一個查詢結果,我們會查詢前幾個連結,然後綜合比對整合前幾個搜尋結果的資訊;我們希望這能夠成為一個自動工作,輸入查詢主題詞,就能讓計算機自動開啟瀏覽器,顯示前幾項查詢

任務要做的事情:
從命令列引數中獲取查詢關鍵字
取得查詢結果頁面
為每個結果開啟一個瀏覽器選項卡

虛擬碼:
從sys.argv中讀取命令列引數
用requests模組取得查詢結果頁面
找到每個查詢結果的連結(search)
呼叫webbrowser.open()函式開啟web瀏覽器

程式碼:

#! python 3
#lucky.py - Opens several Google search results
import requests, sys,  webbrowser, bs4
print('Googling ...') #display text while downloading the google page
res = requests.get('http://google.com/search?/q' + ' '.join(sys.argv[1:]))
res.raise_for_status()

#Retrieve top search result links
soup = bs4.BeautifulSoup(res.text)

#Open a browser tab for each result 
linkElems = soup.select('.r a')  #我們搜尋的結果的儲存在r類中<a>元素中
numopen = min(5, len(linkElems))
for i in range(numopen):
    webbrowser.open('http://google.com' + linkElems[i].get('href'))

附錄說明:

如何在windows中命令列中執行Python程式碼

  1. 安裝Python之後將執行目錄新增到path變數中
  2. win+R開啟命令列環境,切換到Python執行的資料夾中
  3. 輸入python * .py 執行Python檔案,例項如下:
    在這裡插入圖片描述

參考文件
(https://wenwen.sogou.com/z/q325973198.htm)
參考書籍
《Python程式設計快速上手——讓繁瑣工作自動化》