一、知識導(dǎo)圖

二、計算思維
1、人類在認(rèn)識世界、改造世界過程中表現(xiàn)出三種基 本的思維特征:以實驗和驗證為特征的實證思維, 以物理學(xué)科為代表;以推理和演繹為特征的邏輯 思維,以數(shù)學(xué)學(xué)科為代表;以設(shè)計和構(gòu)造為特征 的計算思維,以計算機(jī)學(xué)科為代表。
2、 計算思維的本質(zhì)是和
三、程序設(shè)計方法論
四、計算生態(tài)
五、基本的Python內(nèi)置函數(shù)



六、實例解析:Web頁面元素提取
1、 Web頁面元素提取
I、Web頁面,一般是HTML頁面,是Internet組織 信息的基礎(chǔ)元素。Web頁面元素提取是一類常見 問題,在網(wǎng)絡(luò)爬蟲、瀏覽器等程序中有著不可或 缺的重要作用
II、HTML指超文本標(biāo)記語言,嚴(yán)格來說,HTML不 是一種編程語言,而是一種對信息的標(biāo)記語言, 對Web的內(nèi)容、格式進(jìn)行描述。
III、 自動地從一個鏈接獲取HTML頁面是網(wǎng)絡(luò)爬蟲的 功能,本實例功能可以整體分成如下4個步驟:
? 步驟1: 讀取保存在本地的html文件;
? 步驟2:解析并提取其中的圖片鏈接;
? 步驟3:輸出提取結(jié)果到屏幕;
? 步驟4:保存提取結(jié)果為文件。
IV、根據(jù)上述步驟,可以寫出主程序如下。其中設(shè)置 了4個函數(shù)getHTMLlines()、extractImageUrls()、
showResults()和saveResults()分別對應(yīng)上述4個 步驟。
def main():
inputfile = 'nationalgeographic.html'
outputfile = 'nationalgeographic-urls.txt'
htmlLines = getHTMLlines(inputfile)
imageUrls = extractImageUrls(htmlLines)
showResults(imageUrls)
saveResults(outputfile, imageUrls)
V、定義main()函數(shù)的目的是為了讓代碼更加清晰, 作為主程序,也可以不采用函數(shù)形式而直接編寫。 main()前兩行分別制定了擬獲取HTML文件的路 徑和結(jié)果輸出路徑。主函數(shù)設(shè)計完成后,逐一編寫各函數(shù)功能。
VI、getHTMLlines()函數(shù)讀取HTML文件并內(nèi)容, 并將結(jié)果轉(zhuǎn)換為一個分行列表,為了兼容不同編 碼,建議在open()函數(shù)中增加encoding字段,設(shè) 置采用UTF-8編碼打開文件。代碼如下。
def getHTMLlines(htmlpath):
f = open(htmlpath, "r", encoding='utf-8')
ls = f.readlines()
f.close()
return ls
VI、extractImageUrls()是程序的核心,用于解析文件并提取圖像的URL。觀察HTML可以發(fā)現(xiàn),圖像采用img標(biāo)簽表示,例如:
<img title="photo story"
src="http://image.nationalgeographic.com.cn/2018/0122/20 180122042251164.jpg" width="968px" />
VII、其中,<img開頭是圖像標(biāo)簽的特點,其中由src=所引導(dǎo) 的URL是這個圖像的真實位置。每個URL都以http開頭。 因此,可以通過字符串操作提取其中的圖像鏈接。
def extractImageUrls(htmllist):
urls = []
for line in htmllist:
if 'img' in line:
url = line.split('src=')[-1].split('"')[1]
if 'http' in url:
return urls urls.append(url)
VIII、showResults()函數(shù)將獲取的鏈接輸出到屏幕上,增加一個計數(shù)變量提供更好用戶體驗,saveResults()保存結(jié)果到文件。
def showResults(urls):
count = 0
for url in urls:
print('第{:2}個URL:{}'.format(count, url))
count += 1
def saveResults(filepath, urls):
f = open(filepath, "w")
for url in urls:
f.write(url+"\n")
f.close()
交流
如果你有更好的解法或者有不同的意見,大家可以暢所欲言,共同提高進(jìn)步!
群主也是小白一枚,零基礎(chǔ)學(xué)習(xí)python,要勇于提問,大家共同探討,共同學(xué)習(xí)進(jìn)步!
1、加入qq群一起交流學(xué)習(xí):818757567

2、關(guān)注微信公眾號:python大星

恰同學(xué)少年,風(fēng)華正茂。