Python二級(10)——Python的計算機(jī)生態(tài)

一、知識導(dǎo)圖

圖1.png

二、計算思維

1、人類在認(rèn)識世界、改造世界過程中表現(xiàn)出三種基 本的思維特征:以實驗和驗證為特征的實證思維, 以物理學(xué)科為代表;以推理和演繹為特征的邏輯 思維,以數(shù)學(xué)學(xué)科為代表;以設(shè)計和構(gòu)造為特征 的計算思維,以計算機(jī)學(xué)科為代表。
2、 計算思維的本質(zhì)是\color{red}{抽象(Abstraction)}\color{red}{自動 化(Automation)}

三、程序設(shè)計方法論

四、計算生態(tài)

五、基本的Python內(nèi)置函數(shù)

圖2.png

圖3.png

圖4.png

六、實例解析: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
圖.png
2、關(guān)注微信公眾號:python大星
圖.png

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

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

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

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,797評論 1 45
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,629評論 1 32
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,799評論 0 3
  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,684評論 1 11
  • 等你有了新的圈子 希望你不要忘記是誰 陪你走過那段人煙稀少的時光 ? 總得被傷那么幾回才會明白 再珍貴的感情都敵不...
    c87b75881f99閱讀 162評論 0 1

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