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多對應的天氣資訊。
- 進入網站並開啟開發者工具
- 定位網頁中感興趣的資訊在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程式碼
- 安裝Python之後將執行目錄新增到path變數中
- win+R開啟命令列環境,切換到Python執行的資料夾中
- 輸入python * .py 執行Python檔案,例項如下:
參考文件
(https://wenwen.sogou.com/z/q325973198.htm)
參考書籍
《Python程式設計快速上手——讓繁瑣工作自動化》