版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-1-《程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)》教案基本信息課程名稱任務(wù)33簡(jiǎn)單網(wǎng)絡(luò)應(yīng)用開發(fā)授課年級(jí)中專一年級(jí)授課教師XXX授課時(shí)長(zhǎng)2學(xué)時(shí)教學(xué)分析教學(xué)目標(biāo)知識(shí)目標(biāo):了解并掌Request庫(kù)、BeautifulSoup庫(kù)的安裝和基本用法。理解HTTP請(qǐng)求原理及網(wǎng)頁(yè)解析邏輯。能力目標(biāo):1.能正確使用Request庫(kù)進(jìn)行網(wǎng)頁(yè)請(qǐng)求。2.能通過(guò)BeautifulSoup庫(kù)提取網(wǎng)頁(yè)數(shù)據(jù),具備基礎(chǔ)爬蟲開發(fā)能力。素質(zhì)目標(biāo):通過(guò)案例實(shí)踐,提升網(wǎng)絡(luò)爬蟲的能力,獲取更多網(wǎng)絡(luò)資源。培養(yǎng)數(shù)據(jù)獲取與分析思維,了解網(wǎng)絡(luò)爬蟲的合法性與倫理規(guī)范。教學(xué)重難點(diǎn)教學(xué)重點(diǎn):1.requests.get()和requests.post()方法的使用2.BeautifulSoup庫(kù)解析HTML并提取數(shù)據(jù)的常用方法教學(xué)難點(diǎn):1.網(wǎng)頁(yè)請(qǐng)求頭的設(shè)置(反爬基礎(chǔ))2.復(fù)雜HTML結(jié)構(gòu)中目標(biāo)數(shù)據(jù)的定位教法學(xué)法教法:講授法、案例演示法、任務(wù)驅(qū)動(dòng)法。學(xué)法:實(shí)踐操作法、小組討論法、對(duì)比歸納法。教學(xué)準(zhǔn)備教師:PPT課件(含代碼示例)、教案、Python環(huán)境(Pycharm)、任務(wù)測(cè)試題。學(xué)生:預(yù)習(xí)課本“任務(wù)33”相關(guān)內(nèi)容。教學(xué)流程設(shè)計(jì)意圖第一課時(shí)情境引入:展示“通過(guò)爬蟲獲取電商商品價(jià)格”“批量下載學(xué)術(shù)論文摘要”等案例。提問(wèn):“這些數(shù)據(jù)是如何從網(wǎng)頁(yè)中獲取的?”明確目標(biāo):本節(jié)課學(xué)習(xí)“如何讓Python代替瀏覽器向網(wǎng)頁(yè)發(fā)送請(qǐng)求”,為數(shù)據(jù)提取打下基礎(chǔ)。通過(guò)真實(shí)應(yīng)用場(chǎng)景激發(fā)學(xué)生興趣,將抽象的“網(wǎng)絡(luò)請(qǐng)求”轉(zhuǎn)化為具體問(wèn)題,符合“從生活到知識(shí)”的認(rèn)知規(guī)律。二、教師新授+實(shí)戰(zhàn)練習(xí)requests庫(kù)基礎(chǔ)庫(kù)的介紹:對(duì)比urllib與requests:強(qiáng)調(diào)requests的簡(jiǎn)潔性(“用一行代碼實(shí)現(xiàn)URL請(qǐng)求”)安裝方法演示:通過(guò)pipinstallrequests命令,學(xué)生同步操作核心方法講解:(1)requests.get():該方法用于GET請(qǐng)求,表示向網(wǎng)站發(fā)起請(qǐng)求,獲取頁(yè)面響應(yīng)對(duì)象。語(yǔ)法如下:res=requests.get(url,headers=headers,params,timeout)參數(shù)說(shuō)明如下:?url:要抓取的url地址。?headers:用于包裝請(qǐng)求頭信息。?params:請(qǐng)求時(shí)攜帶的查詢字符串參數(shù)。?timeout:超時(shí)時(shí)間,超過(guò)時(shí)間會(huì)拋出異常。對(duì)于GET請(qǐng)求來(lái)說(shuō),它的URL有兩種方式。案例實(shí)踐方式一:不帶參數(shù)具體使用示例如下:importrequestsurl=''response=requests.get(url)print(response)輸出結(jié)果:<Response[200]>方式二:獲取帶查詢字符串參數(shù)的響應(yīng)對(duì)象,如下所示:importrequestsdata={'name':'編程幫','url':""}response=requests.get('/get',params=data)#直接拼接參數(shù)也可以#response=requests.get(/get?name=gemey&age=22)#調(diào)用響應(yīng)對(duì)象text屬性,獲取文本信息print(response.text)輸出結(jié)果:{"args":{"name":"\u7f16\u7a0b\u5e2e","url":""},"headers":{"Accept":"*/*","Accept-Encoding":"gzip,deflate","Host":"","User-Agent":"python-requests/2.23.0","X-Amzn-Trace-Id":"Root=1-60420026-236f9205646b68706d0fafa7"},"origin":"94","url":"/get?name=\u7f16\u7a0b\u5e2e&url="}(2)requests.post()該方法用于POST請(qǐng)求,先由用戶向目標(biāo)url提交數(shù)據(jù),然后服務(wù)器返回一個(gè)HttpResponse響應(yīng)對(duì)象,語(yǔ)法如下:requests.post(url,data={key:value},json={key:value},args)參數(shù)說(shuō)明如下:?url:url
請(qǐng)求url。?data
:為要發(fā)送到指定url的字典、元組列表、字節(jié)或文件對(duì)象。?json:為要發(fā)送到指定url的JSON對(duì)象。?args
:為其他參數(shù),比如cookies、headers、verify等示例如下所示:importrequests#百度翻譯url=''#post請(qǐng)求體攜帶的參數(shù),可通過(guò)開發(fā)者調(diào)試工具查看#查看步驟:NetWork選項(xiàng)->Headers選項(xiàng)->FormDatadata={'from':'zh','to':'en','query':'編程幫你好'}response=requests.post(url,data=data)print(response)輸出結(jié)果:<Response[200]>對(duì)象屬性當(dāng)我們使用Requests模塊向一個(gè)URL發(fā)起請(qǐng)求后會(huì)返回一個(gè)Response對(duì)象,該對(duì)象具有以下常用屬性:常用屬性說(shuō)明text獲取網(wǎng)頁(yè)內(nèi)容content獲取網(wǎng)頁(yè)字節(jié)流url獲取請(qǐng)求地址encoding獲取編碼方式status_code獲取狀態(tài)碼headers獲取請(qǐng)求頭cookies獲取cookies案例實(shí)踐使用示例如下所示:importrequestsresponse=requests.get('')print(response.encoding)response.encoding="utf-8"#更改為utf-8編碼print(response.status_code)#打印狀態(tài)碼print(response.url)#打印請(qǐng)求urlprint(response.headers)#打印頭信息print(response.cookies)#打印cookie信息print(response.text)#以字符串形式打印網(wǎng)頁(yè)源碼print(response.content)#以字節(jié)流形式打印輸出結(jié)果:#編碼格式ISO-8859-1#響應(yīng)碼200#url地址/#請(qǐng)求頭信息{'Cache-Control':'private,no-cache,no-store,proxy-revalidate,no-transform','Connection':'keep-alive','Content-Encoding':'gzip','Content-Type':'text/html','Date':'Mon,08Mar202105:19:33GMT','Last-Modified':'Mon,23Jan201713:27:29GMT','Pragma':'no-cache','Server':'bfe/8','Set-Cookie':'BDORZ=27315;max-age=86400;domain=.;path=/','Transfer-Encoding':'chunked'}#查看cookies信息<RequestsCookieJar[<CookieBDORZ=27315for./>]>...內(nèi)容過(guò)長(zhǎng),此處省略后兩項(xiàng)輸出通過(guò)對(duì)比突出requests的優(yōu)勢(shì),降低學(xué)習(xí)門檻;示例代碼選擇百度首頁(yè)(學(xué)生熟悉的網(wǎng)站),增強(qiáng)親切感;分步驟解析參數(shù)和屬性,符合“由簡(jiǎn)到繁”的教學(xué)邏輯。三、小結(jié)與提問(wèn)總結(jié):requests庫(kù)的核心流程:“構(gòu)造請(qǐng)求→發(fā)送請(qǐng)求→獲取響應(yīng)→解析響應(yīng)”。提問(wèn):“為什么有時(shí)response.text會(huì)出現(xiàn)亂碼?”(引導(dǎo)思考encoding屬性的作用)通過(guò)流程圖梳理知識(shí)框架,幫助學(xué)生建立邏輯體系;開放性問(wèn)題為下節(jié)課埋下伏筆,激發(fā)探究欲。第二課時(shí)1.回顧requests庫(kù):通過(guò)快速提問(wèn)檢查學(xué)生對(duì)“狀態(tài)碼”“響應(yīng)內(nèi)容類型”的掌握2.過(guò)渡:“獲取網(wǎng)頁(yè)內(nèi)容后,如何提取其中的標(biāo)題、鏈接等信息?”引出BeautifulSoup庫(kù)通過(guò)復(fù)習(xí)鞏固上節(jié)課知識(shí),自然銜接本節(jié)課主題,形成“請(qǐng)求→解析”的完整鏈條。二、教師新授+實(shí)戰(zhàn)練習(xí)1.BeautifulSoup庫(kù)基礎(chǔ)BeautifulSoup
是Python一個(gè)用于解析HTML和XML文檔的第三方庫(kù),它可以將復(fù)雜的HTML或XML文檔轉(zhuǎn)化為樹形結(jié)構(gòu),方便用戶從中提取所需的數(shù)據(jù)。安裝BeautifulSoup可以使用pip命令:pipinstallbeautifulsoup4BeautifulSoup官方推薦使用“l(fā)xml”作為HTML解析器,因?yàn)樗乃俣瓤?、容錯(cuò)能力強(qiáng)。安裝命令如下:pipinstalllxml安裝成功后,可以引入BeautifulSoup庫(kù)開始使用:from
bs4
import
BeautifulSoup(1)基本使用以下是一個(gè)使用
BeautifulSoup
解析HTML文檔的基本示例:frombs4importBeautifulSoup#示例HTML文檔html_doc="""<html><head><title>示例頁(yè)面</title></head><body><h1>歡迎來(lái)到示例頁(yè)面</h1><pclass="content">這是一個(gè)段落。</p><ahref="">示例鏈接</a></body></html>"""#創(chuàng)建BeautifulSoup對(duì)象soup=BeautifulSoup(html_doc,'lxml')#打印美化后的HTML文檔print(soup.prettify())在上述代碼中,首先導(dǎo)入
BeautifulSoup
類,然后定義一個(gè)示例HTML文檔。接著使用
BeautifulSoup
類創(chuàng)建一個(gè)
soup
對(duì)象,需要傳入HTML文檔和解析器類型(這里使用
lxml)。最后調(diào)用
prettify()
方法將HTML文檔進(jìn)行美化并打印輸出。(2)常見方法和屬性1.查找元素:通過(guò)標(biāo)簽名查找:使用
find()
或
find_all()
方法通過(guò)標(biāo)簽名查找元素。#查找第一個(gè)h1標(biāo)簽first_h1=soup.find('h1')print(first_h1.text)#查找所有p標(biāo)簽all_p=soup.find_all('p')forpinall_p:print(p.text)通過(guò)屬性查找:可以在
find()
或
find_all()
方法中傳入屬性字典來(lái)查找具有特定屬性的元素。#查找class為content的p標(biāo)簽content_p=soup.find('p',{'class':'content'})print(content_p.text)通過(guò)CSS選擇器查找:使用
select()
方法通過(guò)CSS選擇器查找元素。#查找所有a標(biāo)簽all_links=soup.select('a')forlinkinall_links:print(link['href'])2.獲取元素屬性和文本獲取元素屬性:可以通過(guò)索引或
get()
方法獲取元素的屬性值。#獲取a標(biāo)簽的href屬性link=soup.find('a')print(link['href'])print(link.get('href'))獲取元素文本:使用
text
屬性獲取元素的文本內(nèi)容。#獲取title標(biāo)簽的文本title=soup.find('title')print(title.text)(3)從文件中讀取HTML文檔除了直接使用字符串作為HTML文檔,還可以從文件中讀取HTML文檔:frombs4importBeautifulSoup#打開HTML文件withopen('example.html','r',encoding='utf-8')asfile:html_doc=file.read()#創(chuàng)建BeautifulSoup對(duì)象soup=BeautifulSoup(html_doc,'lxml')#查找第一個(gè)h1標(biāo)簽并打印文本first_h1=soup.find('h1')print(first_h1.text)BeautifulSoup
是一個(gè)功能強(qiáng)大且易于使用的庫(kù),通過(guò)它可以方便地解析HTML和XML文檔,并從中提取所需的數(shù)據(jù)。它提供了多種查找元素的方法和屬性,能夠滿足不同場(chǎng)景下的數(shù)據(jù)提取需求1.用簡(jiǎn)化的本地HTML示例降低理解難度,避免復(fù)雜網(wǎng)頁(yè)源碼干擾
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車險(xiǎn)知識(shí)課件培訓(xùn)
- 車間級(jí)安全培訓(xùn)教育內(nèi)容課件
- 2025年學(xué)校預(yù)防校園欺凌工作總結(jié)范本(3篇)
- 車間碰撞事故安全培訓(xùn)課件
- 2026年廣東深圳市高職單招職業(yè)適應(yīng)性測(cè)試試題解析及答案
- 藥物外滲高級(jí)護(hù)理2026
- 車間工人安全事故培訓(xùn)課件
- 車間安全培訓(xùn)問(wèn)答題課件
- 糖尿病患者血脂管理指南2026
- 車間安全員消防培訓(xùn)記錄課件
- 圍手術(shù)期心肌梗塞的護(hù)理
- 2025-2026學(xué)年蘇教版(2024)小學(xué)科學(xué)二年級(jí)上冊(cè)期末測(cè)試卷附答案(共三套)
- 垃圾清運(yùn)補(bǔ)充合同范本
- 2026屆湖南省長(zhǎng)沙市長(zhǎng)郡集團(tuán)九年級(jí)物理第一學(xué)期期末預(yù)測(cè)試題含解析
- 生日主題宴會(huì)設(shè)計(jì)方案
- 《JJG 1081.1-2024鐵路機(jī)車車輛輪徑量具檢定規(guī)程 第1部分:輪徑尺》 解讀
- 《基坑圍護(hù)結(jié)構(gòu)滲漏檢測(cè)技術(shù)標(biāo)準(zhǔn)》
- 代辦營(yíng)業(yè)執(zhí)照合同模板范文
- 職業(yè)教育示范性教師教學(xué)創(chuàng)新團(tuán)隊(duì)建設(shè)方案
- 防暴演練安全培訓(xùn)課件
- 基礎(chǔ)越南語(yǔ)1課件
評(píng)論
0/150
提交評(píng)論