![《大數(shù)據(jù)技術應用基礎》課件 項目三模塊三 網(wǎng)頁采集方法_第1頁](http://file4.renrendoc.com/view11/M03/3C/34/wKhkGWXuwd6AQIF7AAFyvB2XLm8388.jpg)
![《大數(shù)據(jù)技術應用基礎》課件 項目三模塊三 網(wǎng)頁采集方法_第2頁](http://file4.renrendoc.com/view11/M03/3C/34/wKhkGWXuwd6AQIF7AAFyvB2XLm83882.jpg)
![《大數(shù)據(jù)技術應用基礎》課件 項目三模塊三 網(wǎng)頁采集方法_第3頁](http://file4.renrendoc.com/view11/M03/3C/34/wKhkGWXuwd6AQIF7AAFyvB2XLm83883.jpg)
![《大數(shù)據(jù)技術應用基礎》課件 項目三模塊三 網(wǎng)頁采集方法_第4頁](http://file4.renrendoc.com/view11/M03/3C/34/wKhkGWXuwd6AQIF7AAFyvB2XLm83884.jpg)
![《大數(shù)據(jù)技術應用基礎》課件 項目三模塊三 網(wǎng)頁采集方法_第5頁](http://file4.renrendoc.com/view11/M03/3C/34/wKhkGWXuwd6AQIF7AAFyvB2XLm83885.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目三數(shù)據(jù)采集《大數(shù)據(jù)技術應用基礎》模塊三
網(wǎng)頁采集方法核心目標職業(yè)能力1.了解網(wǎng)絡爬蟲的用途以及相關使用規(guī)范;2.能掌握Python爬蟲的基本流程框架;3.能使用Python爬蟲爬取需要的數(shù)據(jù);4.能將Python處理的數(shù)據(jù)與本地數(shù)據(jù)相互轉換。職業(yè)素養(yǎng)1.養(yǎng)成自行獲取數(shù)據(jù)分析所需要資料的習慣;2.培養(yǎng)遵守相關網(wǎng)絡爬蟲法律規(guī)定與規(guī)范的精神;3.培養(yǎng)編寫規(guī)范代碼習慣以提高代碼靈活性。知識圖譜項目背景為了完成老師針對茶葉品類做一份詳盡調查報告的任務,在學習了Python的基本操作以后,小張首先需要進行茶葉品類相關數(shù)據(jù)的獲取,而對數(shù)據(jù)的收集工作,網(wǎng)絡爬蟲有著極高的效率與準確性,可以用較短的時間獲取大量的數(shù)據(jù)以供分析,故小張將在本項目開始學習如何利用Python進行網(wǎng)絡爬蟲爬取需要的數(shù)據(jù)并保存到本地。在本項目中,小張需要學習本地文件的操作以及如何編寫爬蟲程序,找到適合的數(shù)據(jù)網(wǎng)頁,并使用爬蟲數(shù)據(jù)進行爬取,最后再使用本地文件的操作方法將數(shù)據(jù)保存為Excel類的表格型文件。0102網(wǎng)頁結構Request庫的使用方法03BeautifulSoup庫的使用方法問題引入在了解到網(wǎng)絡爬蟲的妙用之后,小張決定使用Python編寫網(wǎng)絡爬蟲程序以爬取所需要的茶葉品類相關數(shù)據(jù),為了成功編寫程序爬取數(shù)據(jù),小張開始學習Python爬蟲常用的數(shù)據(jù)庫Requests庫和BeautifulSoup(BS4)庫,并希望學習過后能夠自己爬取下來某銷售網(wǎng)站上不同茶葉品類的產(chǎn)品數(shù)據(jù)以及銷售數(shù)據(jù)并運用之前學習到的知識將其以Excel的格式保存在本地。網(wǎng)頁結構01一、網(wǎng)頁結構URL,又可以稱之為網(wǎng)址,每一個網(wǎng)頁都對應著一個網(wǎng)址,編寫的爬蟲軟件通過URL來定位到網(wǎng)頁。URL的組件構成,包括協(xié)議、域名、端口號、路徑和查詢字符等。/s?wd=python&ie=utf-8表示在百度上搜索Python且編碼為utf-8“?”分隔路徑和查詢參數(shù)“=”查詢數(shù)據(jù)中的鍵值對“&”分隔多個查詢鍵值對什么是URL?一、網(wǎng)頁結構網(wǎng)頁一般由三部分組成:CSS(層疊樣式表)HTML(超文本標記語言)JavaScript(動態(tài)腳本語言)負責定義網(wǎng)頁的內容,是爬蟲需要重點分析的部分。網(wǎng)頁的構成一、網(wǎng)頁結構HTML是網(wǎng)頁的基本結構,可以看作是人體的骨骼。在網(wǎng)頁的源代碼中HTML標簽同時帶有“<”與“>”符號,與Python中使用中括號定義一個列表類似,常見的HTML標簽如表。標簽含義<!DOCTYPEhtml>聲明為HTML5文檔<html>..</html>表示網(wǎng)頁的根元素<head>..</head>此元素包含了文檔的元(meta)數(shù)據(jù),如<metacharset="gbk">定義網(wǎng)頁編碼格式為gbk。<title>..<title>表示文檔的標題<body>..</body>表示用戶可見的內容<div>..</div>表示框架<p>..</p>表示段落<ul>..</ul>定義無序列表<ol>..</ol>定義有序列表<li>..</li>表示列表項表示列表項<imgsrc=""alt="">表示圖片<h1>..</h1>表示圖片<ahref="">..</a>表示超鏈接一、網(wǎng)頁結構【案例】在記事本中輸入以下代碼內容,存儲類型選擇為“所有類型”,文件命名為:1.html。<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>大數(shù)據(jù)技術應用基礎</title></head><body>
<ahref="">點擊搜索</a>
<h1>大數(shù)據(jù)技術應用基礎</h1>
<h2>Python爬蟲</h2>
<div> <p>認識網(wǎng)頁結構</p> <ul> <li>HTML</li> <li>CSS</li> </ul>
</div> </body></html>代碼輸出結果(在瀏覽器中)Request庫的使用方法02二、Request庫的使用方法Requests庫是一個第三方庫,是在urllib庫的基礎上開發(fā)而來,與urllib庫相比,更加的方便快捷,在實際中更為常用。常用的請求函數(shù)為:requests.get(url,headers,params,timeout)url參數(shù):網(wǎng)址headers:代表表頭,其中有瀏覽器標識等信息params:代表傳入網(wǎng)頁的參數(shù)timeout:代表最大請求時間,超過時間則拋出異常二、Request庫的使用方法代碼importrequests#導入requests庫url=''#定義要訪問的網(wǎng)址response=requests.get(url)#請求網(wǎng)址print(response)#放回網(wǎng)址的回應data={'name':'百度','url':""}#要傳入請求網(wǎng)址的參數(shù)response=requests.get('/get',params=data)#使用get方法請求網(wǎng)頁,也可直接請求/get?name=百度&url=。print(response.text)#以字符串形式輸出網(wǎng)頁源碼,二、Request庫的使用方法輸出結果<Response[200]>{"args":{"name":"\u767e\u5ea6","url":""},"headers":{"Accept":"*/*","Accept-Encoding":"gzip,deflate","Host":"","User-Agent":"python-requests/2.24.0","X-Amzn-Trace-Id":"Root=1-63e9fe6c-537618646df73e5c62e3c536"},"origin":"24","url":"/get?name=\u767e\u5ea6&url="httpbin是一個在Github上托管的開源項目,當請求該網(wǎng)站時會返回相應的響應信息。Response[200]代表請求成功,與網(wǎng)頁成功連通。二、Request庫的使用方法通過Requests庫請求后網(wǎng)頁將返回一個HttpResponse響應對象,其擁有許多屬性,此處選取常用屬性展示,使用的代碼命令與結果如下所示。代碼importrequests#導入requests庫response=requests.get('')#請求百度的網(wǎng)址print(response.encoding)#輸出網(wǎng)頁的編碼response.encoding="utf-8"#將得到的網(wǎng)頁編碼轉化為“utf-8”print(response.status_code)#輸出請求的狀態(tài)碼,200表示連通print(response.url)#輸出請求的網(wǎng)址print(response.headers)#輸出發(fā)起請求的表頭print(response.cookies)#輸出此次訪問的cookiesprint(response.text)#以字符串形式輸出網(wǎng)頁源碼print(response.content)#以字節(jié)流形式輸出網(wǎng)頁源碼二、Request庫的使用方法通過Requests庫請求后網(wǎng)頁將返回一個HttpResponse響應對象,其擁有許多屬性,此處選取常用屬性展示,使用的代碼命令與結果如下所示。輸出結果ISO-8859-1200/{'Cache-Control':'private,no-cache,no-store,proxy-revalidate,no-transform','Connection':'keep-alive','Content-Encoding':'gzip','Content-Type':'text/html','Date':'Mon,13Feb202309:30:00GMT','Last-Modified':'Mon,23Jan201713:27:57GMT','Pragma':'no-cache','Server':'bfe/8','Set-Cookie':'BDORZ=27315;max-age=86400;domain=.;path=/','Transfer-Encoding':'chunked'}<RequestsCookieJar[<CookieBDORZ=27315for./>]>#后兩項為網(wǎng)頁源碼內容過長,此處忽略二、Request庫的使用方法1.其中encoding表示網(wǎng)頁編碼,對其賦值可以轉換請求得到的網(wǎng)頁的編碼,此處將‘ISO-8859-1’編碼轉化為‘utf-8’編碼。2.status_code表示狀態(tài)碼,200為連通狀態(tài),其他狀態(tài)碼還有404表示服務器未找到,503代表連接超時等。3.url表示請求的URL。4.headers代表頭信息,可以看到其中有瀏覽器標識、請求時間、網(wǎng)頁最后更新時間等信息。5.cookies表示訪問的cookies信息,是根據(jù)本地訪問信息生成的一條鏈接,此處不作展開。6.text表示以字符串形式返回網(wǎng)頁源碼。content表示以字節(jié)流形式放回網(wǎng)頁源碼,若要下載圖片需要使用content屬性。BeautifulSoup庫的使用方法03三、BeautifulSoup庫的使用方法BeautifulSoup簡稱BS4(其中4表示版本號)是一個Python第三方庫,它可以從HTML或XML文檔中快速地提取指定的數(shù)據(jù)。BeautifulSoup語法簡單,使用方便,容易理解。概念BeautifulSoup三、BeautifulSoup庫的使用方法BeautifulSoup(source,parser)得到HttpResponse響應對象后,首先需要使用文檔解析器將其解析為BS4可以解析的HTML格式,使用的函數(shù)為:source:表示要解析的網(wǎng)頁源代碼。parser:表示選擇的解析器,在Python中可以選擇lxml解析器、xml解析器等。三、BeautifulSoup庫的使用方法代碼frombs4importBeautifulSoup#導入BeautifulSoup庫txt="""<html><head><title>"百度"</title></head><body><pclass="title"><b></b></p><pclass="website">百度搜索<ahref="/"id="link1">新聞</a><ahref=""id="link2">圖片</a>"""#txt為一串不完整的html源碼soup=BeautifulSoup(txt,'lxml')#對txt進行解析,使用lxml解析器print(soup.prettify)#輸出規(guī)范解析后規(guī)范的html源碼BeautifulSoup函數(shù)的具體案例使用的代碼命令與結果三、BeautifulSoup庫的使用方法輸出結果<html><head><title>"百度"</title></head><body><pclass="title"><b>
</b></p><pclass="website">百度搜索<ahref="/"id="link1">新聞</a><ahref=""id="link2">圖片</a></p></body></html>三、BeautifulSoup庫的使用方法對BeautifulSoup對象進行具體分析BeautifulSoup將復雜HTML文檔轉換成一個復雜的樹形結構,每個節(jié)點都是Python對象,所有對象可以歸納為4種圖1網(wǎng)頁結構數(shù)樹三、BeautifulSoup庫的使用方法在BeautifulSoup的樹中每一個節(jié)點都是一個Python對象,其分類有四類:1.Tag:標簽類,對應HTML文檔中的標簽2.NavigableString:字符串類,對應標簽中的文本內容3.BeautifulSoup:表示一個HTML文檔的全部內容4.Comment:表示HTML文檔中的注釋內容或特殊字符串,可以看作一個特殊的NavigableString對BeautifulSoup對象進行具體分析三、BeautifulSoup庫的使用方法獲取想要的數(shù)據(jù)主要用到兩個函數(shù):find_all(name,attrs,recursive,text,limit)find(name,attrs,recursive,text)find_all返回一個所有符合條件的結果的列表find返回第一個符合條件的結果name代表標簽名。attrs代表屬性與值。recursive=True遍歷所有子孫節(jié)點,recursive=False則只遍歷所有直接子節(jié)點。text表示用來搜索文檔中的字符串內容,該參數(shù)可以接受字符串、正則表達式、列表、布爾值等變量類型。三、BeautifulSoup庫的使用方法代碼importrequests#導入requests庫frombs4importBeautifulSoup#從bs庫導入BeautifulSoup方法url='33:8082/fstmicd/index.aspx?pintkey=ODA=&page='#要訪問的網(wǎng)頁headers={'User-Agent':"Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:82.0)Gecko/20100101Firefox/82.0"}#表頭信息,此處表明使用火狐瀏覽器訪問,版本號為82.0,需要更換其他可以在網(wǎng)絡上自行搜索begin=1#起始頁stop=18#終止頁goodPrice=[]#創(chuàng)建一個空的保存列表保存爬取得到的數(shù)據(jù)foriinrange(begin,stop+1):#遍歷每一頁得到商品屬性url2=url+str(i)#字符串拼接得到不同頁的具體url以爬取茶葉品類網(wǎng)站使用的代碼作為示例(接下頁)獲取想要的數(shù)據(jù)三、BeautifulSoup庫的使用方法
代碼
response=requests.get(url=url2,headers=headers)#使用requests庫的get方法請求網(wǎng)頁html=response.content.decode()#獲取網(wǎng)頁源代碼且解碼(即轉換為可讀編碼)soup=BeautifulSoup(html,'lxml')#使用BeautifulSoup解析網(wǎng)頁源碼pri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6 我們神圣的國土 第三課時 (說課稿)-部編版道德與法治五年級上冊
- 7-1《短歌行》說課稿 2024-2025學年統(tǒng)編版高中語文必修上冊
- 2025年企業(yè)招標承包經(jīng)營合同
- 《7 剪紙藝術》(說課稿)-2023-2024學年四年級下冊綜合實踐活動粵教版
- Module 8 Unit 1 Were going to visit Hainan.(說課稿)-2024-2025學年外研版(三起)英語四年級上冊
- Unit 2 My week Period 4 Get ready for the new school year(說課稿)-2024-2025學年人教PEP版英語五年級上冊
- 19海濱小城 (說課稿)-2024-2025學年三年級上冊語文統(tǒng)編版
- 2025農(nóng)副產(chǎn)品買賣合同書模板(合同版本)
- 2023八年級語文上冊 第五單元 口語交際 復述與轉述配套說課稿 新人教版
- 2024年春八年級歷史下冊 第10課 社會主義民主與法制的加強說課稿1(pdf) 川教版
- 天津市河西區(qū)2024-2025學年四年級(上)期末語文試卷(含答案)
- 北京市北京四中2025屆高三第四次模擬考試英語試卷含解析
- 2024年快遞行業(yè)無人機物流運輸合同范本及法規(guī)遵循3篇
- 地下商業(yè)街的規(guī)劃設計
- 傷殘撫恤管理辦法實施細則
- 中國慢性冠脈綜合征患者診斷及管理指南2024版解讀
- 提升模組良率-六西格瑪
- DL-T+5196-2016火力發(fā)電廠石灰石-石膏濕法煙氣脫硫系統(tǒng)設計規(guī)程
- 2024-2030年中國產(chǎn)教融合行業(yè)市場運營態(tài)勢及發(fā)展前景研判報告
- 2024年微生物檢測試劑行業(yè)商業(yè)計劃書
- 通信設備售后服務方案
評論
0/150
提交評論