亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        網(wǎng)絡(luò)數(shù)據(jù)采集

        2021-09-10 18:47:06徐安西
        紅豆教育 2021年5期
        關(guān)鍵詞:教育大數(shù)據(jù)爬蟲

        徐安西

        【摘要】教育大數(shù)據(jù)背景下,數(shù)據(jù)采集是教學(xué)資源庫建設(shè)、網(wǎng)絡(luò)信息管理、教學(xué)研究的前提。利用網(wǎng)絡(luò)爬蟲,采集網(wǎng)頁表層數(shù)據(jù),可以充分發(fā)揮大數(shù)據(jù)無處不在的“第三只眼”作用。本案例從網(wǎng)絡(luò)爬蟲原理開始,探析其技術(shù)架構(gòu),以實(shí)例引領(lǐng)學(xué)生探索網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集的魅力。

        【關(guān)鍵詞】教育大數(shù)據(jù);數(shù)據(jù)采集python 爬蟲

        一、設(shè)計思想

        本節(jié)課是廣東教育出版社2019版《普通高中信息技術(shù)必修1:數(shù)據(jù)與計算》第5.2.1小節(jié)“數(shù)據(jù)采集的方法和工具”中部分內(nèi)容[1],網(wǎng)頁數(shù)據(jù)采集是大數(shù)據(jù)時代數(shù)據(jù)采集技術(shù)之一,也是教育大數(shù)據(jù)研究與實(shí)踐的重要數(shù)據(jù)來源之一。網(wǎng)絡(luò)爬蟲程序是在第4章Python程序設(shè)計的基礎(chǔ)上,結(jié)合HTML網(wǎng)頁制作知識,進(jìn)行網(wǎng)頁文本信息采集。因此,該部分教學(xué)內(nèi)容涉及到的基礎(chǔ)知識多,實(shí)踐應(yīng)用形式豐富。

        在實(shí)際教學(xué)中分為三大部分,第一程序展示,以爬蟲的信息采集為切入點(diǎn),激發(fā)學(xué)生的學(xué)習(xí)興趣。第二部分,模塊介紹與Python爬蟲程序的結(jié)構(gòu)。第三部分提煉爬蟲原理。在教學(xué)過程中結(jié)合任務(wù)驅(qū)動,程序語法用以點(diǎn)代面的方法,例如在soup.find語法中只圍繞解決實(shí)際問題的知識點(diǎn)進(jìn)行探究,而不是面面俱到。程序架構(gòu)上讓學(xué)生通過觀察、提煉出程序的架構(gòu)。通過實(shí)際的操作提煉出爬蟲的概念。

        二、學(xué)情分析

        本節(jié)課的教學(xué)對象是高一年級的學(xué)生,通過初中的信息技術(shù)課學(xué)生已經(jīng)掌握了簡單的網(wǎng)頁制作與HTML語言,知道網(wǎng)頁內(nèi)容版塊與HTML標(biāo)記間的關(guān)系;熟練掌握了Python語言的三種流程結(jié)構(gòu),可以進(jìn)行基本程序邏輯的架構(gòu);了解了模塊的作用,使用模塊思想組織程序代碼。

        三、教學(xué)目標(biāo)

        知識與技能目標(biāo)

        了解requests模塊、BeautfiulSoup模塊的作用;學(xué)會requests模塊、BeautfiulSoup模塊最基本的語法;掌握爬蟲原理。

        過程與方法

        本節(jié)課通過展示爬蟲應(yīng)用,激發(fā)學(xué)習(xí)興趣;展示網(wǎng)絡(luò)爬蟲原理圖,逐步編寫代碼;通過實(shí)例探究采集網(wǎng)頁中的文字信息。

        情感態(tài)度與價值觀

        引導(dǎo)學(xué)生了合法使用爬蟲程序:指導(dǎo)學(xué)生采集網(wǎng)絡(luò)表層數(shù)據(jù),進(jìn)行學(xué)習(xí)、研究;不采集電話號碼、Email等個人信息,不進(jìn)行數(shù)據(jù)跟蹤“深扒”個人隱私;不在短時間內(nèi),對同一個網(wǎng)站發(fā)出網(wǎng)絡(luò)爬蟲下載請求,造成網(wǎng)絡(luò)蠻力攻擊。

        四、教學(xué)重難點(diǎn)

        1.教學(xué)重點(diǎn)

        (1)網(wǎng)絡(luò)爬蟲原理與結(jié)構(gòu);

        (2)requests網(wǎng)頁模塊與循環(huán)不間斷下載;

        (3)BeautfiulSoup網(wǎng)頁解析模塊的基本功能與用法;

        2.教學(xué)難點(diǎn)

        根據(jù)爬蟲實(shí)際應(yīng)用,結(jié)合不同參數(shù),合理使用BeautfiulSoup模塊中find方法,發(fā)現(xiàn)有用信息。

        五、教學(xué)準(zhǔn)備

        1.準(zhǔn)備爬蟲圖。

        2.實(shí)驗(yàn)環(huán)境:需要在Python中提前安裝requests、bs4模塊;

        3.爬蟲編程參考手冊;

        4.爬蟲各模塊示例代碼;

        5.目標(biāo)網(wǎng)站。

        六、教學(xué)過程

        1.導(dǎo)入:演示程序,激發(fā)興趣

        師:班級正在開展“閱讀經(jīng)典”的這個活動,請你到“古詩文網(wǎng)”去下載《孟子》《史記》等全文。下載的格式保存成txt格式,分發(fā)給大家,以方便大家離線閱讀。請大家嘗試完成任務(wù)。

        學(xué)生:打開網(wǎng)站,有的同學(xué)在找有沒有提供txt直接下載的鏈接,有的同學(xué)在一頁一頁打開、選擇、復(fù)制。

        師:這個網(wǎng)站沒有提供txt直接下載,而且孟子的章節(jié)很多,如果一頁一頁的去打開復(fù)制,這個任務(wù)很繁重。我們正在學(xué)習(xí)Python,老師編寫了一個程序來,大家一起來看一看效果?(程序省略)

        【設(shè)計意圖】

        通過實(shí)際問題讓同學(xué)們意識到以前的方法已經(jīng)不能有效的解決問題,有必要尋求新的方法。教師演示程序,通過效率的對比,激發(fā)了同學(xué)學(xué)習(xí)欲望。

        2.探究:模塊功能

        師:Python是一個功能非常強(qiáng)大的語言,它的強(qiáng)大之處就在于提供了非常多的模塊,用python編程來解決實(shí)際問題,在明確需求后,首要的任務(wù)就是找模塊。針對這個任務(wù)我們要選擇哪些模塊呢?對于模塊選擇問題,我們先回過頭看一看,我們用人工采集的方法中做了哪些事情,什么事情是你希望用程序?qū)崿F(xiàn)的?

        學(xué)生:思考并梳理人工采集的步驟。

        師、生:一起分享探討,整個過程就干了兩件事:

        (1)打開網(wǎng)頁,根據(jù)以前所學(xué)的知識,就是客戶端瀏覽器向服務(wù)器發(fā)出一個request請求,Web服務(wù)器把請求結(jié)果以HTML源碼的形式返回;

        (2)讓計算機(jī)自動在網(wǎng)頁上“找”到所需的內(nèi)容。

        總結(jié):所以Python爬蟲就要能自動完成這2件事的功能:

        (1)自動向服務(wù)器發(fā)出request請求,下載并存儲HTML源碼;

        (2)源碼中“找”到相應(yīng)的文本信息。

        【設(shè)計意圖】

        通過梳理人工采集的步驟,讓學(xué)生了解所選的python模塊應(yīng)具有什么功能。每個功能模塊在程序中承當(dāng)?shù)慕巧?。這也為學(xué)生自己探索開發(fā)新程序提供一般性的思路。

        3.探究:模塊使用

        (1)網(wǎng)頁下載模塊

        師:對于第一個功能,我們稱為網(wǎng)頁下載模塊,通過了解,在Python中比較出名是urllib、requests等模塊可以實(shí)現(xiàn)此功能,我們這里選擇了requests模塊。

        學(xué)生:觀察打印res.text的結(jié)果,發(fā)現(xiàn)要查找的內(nèi)容就包含在HTML源代碼中。更換URL地址,查看被訪問網(wǎng)頁的HTML代碼與res.text內(nèi)容是否一致。

        (2)網(wǎng)頁解析模塊

        師:下面我們討論網(wǎng)能實(shí)現(xiàn)網(wǎng)頁內(nèi)文本信息“找”這個功能。我們稱為頁解析模塊,

        這里引入一個叫BeautifulSoup模塊。

        實(shí)例化一個BeauifulSoup對象,取名soup,實(shí)例化時有2個參數(shù),第一參數(shù)是要分析的文本,由于我們要找的內(nèi)容就在res.text里,所以填入res.text,第二參數(shù)是分析的標(biāo)準(zhǔn),html.parser是html語法分析器,也是默認(rèn)的分析標(biāo)準(zhǔn)。

        (3)提出問題,共同探究

        師:提問soup會通過什么方式來查找到信息的?

        ①大家看孟子第一節(jié)的HTML源代碼,要找的內(nèi)容是包含在哪個標(biāo)記中的?

        ②對于不同結(jié)構(gòu)的網(wǎng)頁,是否有同樣的規(guī)律?

        學(xué)生:查看HTML源代碼,找出信息所在的標(biāo)記。更換URL,再次檢查包含文本信息的HTML標(biāo)記

        (4)探索功能豐富的soup.find(‘p’)

        師:大家發(fā)現(xiàn),我們所招的內(nèi)容是包含在<p>標(biāo)記中,具體進(jìn)行試驗(yàn)來驗(yàn)證。

        學(xué)生:通過打印,我們發(fā)現(xiàn)r里面存儲還是一段HTML代碼,參考學(xué)習(xí)手冊,探索r與r.text的作用,r.text取出不帶標(biāo)記的文本內(nèi)容,就相當(dāng)于這段HTML代碼在網(wǎng)頁中呈現(xiàn)的效果。

        (5)問題再現(xiàn):如何找到所有需要的文本信息?

        師:通過觀察,這并不是我們要找的內(nèi)容,因?yàn)閒ind只是返回的第一個查找到的結(jié)果。我們看HTML 源代碼,原來在這之段內(nèi)容之前還有其它的<p>標(biāo)記。即使沒有“作者:佚名”這一段,我們要找的內(nèi)容包含在2個<p>標(biāo)記里面,find只是找到第一個<p>,那第二個<p>怎么解決?有沒有簡單的方法?

        學(xué)生:通過不同類型網(wǎng)頁試驗(yàn)、比較,發(fā)現(xiàn)要找的內(nèi)容不僅包含在2個<p>標(biāo)記中,也包含在<div>標(biāo)記中。

        (6)深究細(xì)節(jié),解決問題

        師:我們把r=soup.find(‘p’)改成r=soup.find(‘div’),通過打印,結(jié)果找到的還是其它內(nèi)容,問題出在什么地方?

        學(xué)生活動:跟<p>標(biāo)記問題一樣,HTML源代碼中不止一個<div>標(biāo)記。

        師:為了區(qū)別這些<div>標(biāo)記,我們應(yīng)該給與更多的信息。大家有沒有發(fā)現(xiàn),我們要找的div標(biāo)記跟其它的div標(biāo)記有什么不同?

        學(xué)生:發(fā)現(xiàn)<div>標(biāo)記的class屬性值不同。

        師:所以我們要告訴程序,你不僅是要找div標(biāo)記,而且要找class屬性值是‘contson’的div標(biāo)記,請參考手冊,改寫程序。

        學(xué)生活動:改寫程序,并打印驗(yàn)證結(jié)果。

        【設(shè)計意圖】

        對于requests模塊和BeautifulSoup模塊的使用,這里采用的是嘗試法。通過不斷的嘗試修改代碼,發(fā)現(xiàn)問題,再修改,再嘗試。

        4.深挖:爬蟲的原理

        師:通過上面的代碼,我們已經(jīng)可以找到第一節(jié)的內(nèi)容,如何得到第二、三節(jié)的內(nèi)容?

        學(xué)生:嘗試修改上面的代碼,得到正確的結(jié)果。

        師:在解決第二、三節(jié)問題時,大家思考,修改了哪些代碼,哪些代碼是不需要修改的?

        學(xué)生:我們只要修改url的值,而其它的代碼不需要修改:

        師:

        res=requests.get(url)

        print(r.text)

        上面這段代碼無論在哪個章節(jié)都不需要修改,如果把這段代碼抽象成一個功能,那就是“訪問一張網(wǎng)頁,找、寫”。回到最初的問題,怎樣得到全部的章節(jié)?

        學(xué)生:討論解決方法。

        如果要實(shí)現(xiàn)全部章節(jié)的下載,只要不斷的更改url的值。而“訪問一張網(wǎng)頁,找、寫”這段代碼都是重復(fù)不變的。

        師:我們用什么結(jié)構(gòu)來處理這些重復(fù)的事情呢,請畫出流程示意圖。

        學(xué)生活動:畫出流程示意圖。

        師:根據(jù)流程示意圖,打開2.py,補(bǔ)充編寫代碼:

        學(xué)生:寫出while模塊的結(jié)構(gòu)。

        師:很多同學(xué)被卡在怎樣得到下一頁的網(wǎng)址url上,請大家手工瀏覽網(wǎng)頁,我們怎樣到下一章去,是不是點(diǎn)擊“下一章”按鈕。說明下一章的網(wǎng)址就包含在這個超鏈接之中,請大家查看HTML源代碼,如何在這個超鏈接中提取下一章的網(wǎng)址呢?

        學(xué)生活動:查看HTML源代碼,發(fā)現(xiàn)下一章的網(wǎng)址存在于<a>這個標(biāo)記中。

        師:我們查看每個網(wǎng)址,就是兩個部分組成:

        url=“https://so.gushiwen.org”+“/guwen/bookv_1127.aspx”

        第一部分是固定的,而第二部分就是存在“下一章”這個超鏈接標(biāo)記的‘href’屬性中,所以我們只要找到每張網(wǎng)頁中指向“下一章”的超鏈接<a>標(biāo)記就可以了,我們把找的結(jié)果存在link這個變量里,我們寫這樣一段代碼可不可以:

        link=soup.find(‘a(chǎn)’)

        學(xué)生:思考不可以的原因,并修改代碼。

        師:得到了正確的url,如果我們到了最后一章怎么辦?請完善代碼。

        學(xué)生:完善代碼,測試,找出問題,再測試。

        師生:共同完善代碼。

        師:我們這段程序自動訪問一個url,抓取數(shù)據(jù)后,再自動的訪問下一個url,不斷循環(huán)重復(fù)。我們把具有這種功能的程序稱為蜘蛛或爬蟲程序。教師展示原理示意圖。

        【設(shè)計意圖】

        對于下載所有章節(jié)問題,讓學(xué)生在做中發(fā)現(xiàn)哪些代碼是“變”的,哪些是“不變”的。哪些是需要重復(fù)的,自然而然的讓學(xué)生運(yùn)用已學(xué)的循環(huán)結(jié)構(gòu)來處理問題,提高學(xué)生自我分析解決問題的能力。

        5.自我創(chuàng)新、思考:

        (1)現(xiàn)在網(wǎng)址是手工輸入的,很繁瑣。如何讓爬蟲自己從特定的文件或數(shù)據(jù)庫自動更多的URL地址?

        (2)如果想讓爬蟲只抓取特定文本信息的網(wǎng)頁,如何修改代碼呢?

        七、教學(xué)反思

        1.程序教學(xué)中,對一些語法、模塊的用法采用以點(diǎn)代面的方式進(jìn)行教學(xué)。即以一個小點(diǎn)為切入口,讓學(xué)生去嘗試,不需要面面俱到。

        2.程序教學(xué)中另一個難點(diǎn)就是程序流程結(jié)構(gòu),很多學(xué)生能讀懂代碼,但是在解決實(shí)際問題時又不知道如何下手??梢栽诮虒W(xué)中經(jīng)常讓學(xué)生自己去思考得出程序流程結(jié)構(gòu),而不是僅僅關(guān)注具體的語法。

        參考文獻(xiàn):

        [1]高中信息技術(shù)必修1:數(shù)據(jù)與計算廣東教育出版社2019

        (南京師范大學(xué)附屬中學(xué)江蘇南京 210003)

        猜你喜歡
        教育大數(shù)據(jù)爬蟲
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        大數(shù)據(jù)背景下校園輿情的爬蟲應(yīng)用研究
        電子制作(2018年2期)2018-04-18 07:13:42
        基于云計算的高校大學(xué)生信息平臺的研究
        “教育大數(shù)據(jù)”視角下的精準(zhǔn)教學(xué)的研究
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        狹義教育大數(shù)據(jù)在英語教學(xué)中的應(yīng)用模式
        教育大數(shù)據(jù)在教育管理中的運(yùn)用分析
        基于Heritrix的主題爬蟲在互聯(lián)網(wǎng)輿情系統(tǒng)中應(yīng)用
        特级av毛片免费观看| 高跟丝袜一区二区三区| 亚洲无码观看a| 精品视频手机在线免费观看 | 在线观看国产成人av天堂野外| 亚洲成av人综合在线观看| 18黑白丝水手服自慰喷水网站| 亚洲av色先锋资源电影网站| 国产偷国产偷亚洲欧美高清| 国产精品无码久久AⅤ人妖| 激情亚洲不卡一区二区| 亚洲youwu永久无码精品| 久久婷婷人人澡人人喊人人爽| 国产精品原创巨作AV女教师 | 亚洲成人激情深爱影院在线| 五月丁香六月综合缴清无码| 欧美金发尤物大战黑人| 国内揄拍国内精品| 亚洲中文无码精品久久不卡| 丁香婷婷激情俺也去俺来也| 国产黄色av一区二区三区| 久久久久亚洲精品无码网址蜜桃| 亚州少妇无套内射激情视频| 熟妇人妻不卡中文字幕| 搞黄色很刺激的网站二区| 久久国产精品亚洲va麻豆| 男人边做边吃奶头视频| 131美女爱做视频| 亚洲国产精品嫩草影院久久| 日本色偷偷| 高清少妇二区三区视频在线观看| 久久只精品99品免费久23| 欧美精品黄页在线观看视频| 无码天堂在线视频| 亚洲毛片在线观看免费| 午夜免费视频| 久久香蕉免费国产天天看| 日本精品久久久久中文字幕1| gg55gg国产成人影院| 国产精品福利自产拍在线观看| 女同亚洲女同精品|