




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)1使用XPath提取網(wǎng)頁(yè)數(shù)據(jù)任務(wù)描述在數(shù)據(jù)采集過程中,需要熟悉網(wǎng)頁(yè)的數(shù)據(jù)提取和拆分。本任務(wù)是使用GoogleChrome瀏覽器輔助構(gòu)造XPath提取浪潮官網(wǎng)中輪播圖下面的列表信息。使用XPath提取網(wǎng)頁(yè)數(shù)據(jù)的思路如下:(1)打開瀏覽器,找到對(duì)應(yīng)的網(wǎng)站地址。(2)使用“檢查”的方式查看網(wǎng)頁(yè)源碼。(3)使用GoogleChrome瀏覽器實(shí)現(xiàn)XPath路徑的保存。(4)構(gòu)造截取信息的XPath。(5)編寫代碼,使用python中的lxml截取所需信息。任務(wù)步驟第一步百度搜索浪潮大數(shù)據(jù),打開浪潮官網(wǎng)。第二步在網(wǎng)頁(yè)上單擊右鍵,在彈出的快捷菜單中選擇“檢查”命令,如圖5-2所示。第三步打開開發(fā)者工具,界面如下圖所示。打開開發(fā)者工具后,使鼠標(biāo)指針在開發(fā)者窗口中的HTML代碼中移動(dòng),可以看到頁(yè)面上不同的地方會(huì)高亮,說明當(dāng)前鼠標(biāo)指針指向的這個(gè)標(biāo)簽,就對(duì)應(yīng)了網(wǎng)頁(yè)中高亮的這一部分的代碼。除了根據(jù)代碼找網(wǎng)頁(yè)位置,還可以根據(jù)網(wǎng)頁(yè)位置找代碼。第四步單擊上圖方框框住的按鈕,并將鼠標(biāo)指針在網(wǎng)頁(yè)上移動(dòng),可以看到開發(fā)者工具窗口中的代碼隨之滾動(dòng)。第五步選定要提取的位置以后,開發(fā)者工具窗口的代碼如下圖所示。第六步在上面單擊右鍵,選擇“Copy”→“CopyXPath”命令,如下圖所示。尋找一個(gè)可以輸入文字的地方,把結(jié)果粘貼下來,可以看到如下的XPath語(yǔ)句://*[@id="11151f3a715d42088f88f2f2a5934cfa"]/div[2]/div[1]/table[1]這種寫法是可以被lxml解析的。方括號(hào)中的數(shù)字,表示這是第幾個(gè)該標(biāo)簽。例如//*[@id="11151f3a715d42088f88f2f2a5934cfa"]/div[2],表示在id為“11151f3a715d42088f88f2f2a5934cfa”的標(biāo)簽下面的第2個(gè)標(biāo)簽。注意,這里的數(shù)字是從1開始的,這和編程語(yǔ)言中普遍的從0開始不一樣。在開發(fā)者工具窗口中,每個(gè)標(biāo)簽的左邊有個(gè)小箭頭。通過單擊小箭頭可以展開或者關(guān)閉這個(gè)標(biāo)簽,通過這個(gè)小箭頭,可以協(xié)助分析頁(yè)面的HTML結(jié)構(gòu)。請(qǐng)注意下圖方框中的每一個(gè)<table>標(biāo)簽。這些方框中的<table>標(biāo)簽就對(duì)應(yīng)了每一條信息。第七步定位目標(biāo),獲取想要的HTML代碼,代碼如下所示,#coding:utf-8importrequestsimporturllib3fromlxmlimportetreeurllib3.disable_warnings()url="/"r=requests.get(url,verify=False)#print(r.text)dom=etree.HTML(r.content.decode("utf-8"))block=dom.xpath("http://*[@class='inzd_tab1']")#打印提取到的結(jié)果t=etree.tostring(block[0],encoding="utf-8",pretty_print=True)print(t.decode("utf-8"))說明:代碼中第二行importrequests為引入python的一個(gè)常用的第三方庫(kù),用于數(shù)據(jù)采集過程中的URL資源處理。在使用過程中需要先進(jìn)行安裝,安裝命令為pipinstallrequests。效果如下圖所示。第八步構(gòu)造lxml,提取table里面的內(nèi)容。代碼如下,t1=block[0].xpath("http://tbody/tr/td/a/text()")#打印結(jié)果print(t1)效果如下圖所示。任務(wù)2使用正則表達(dá)式提取網(wǎng)頁(yè)數(shù)據(jù)任務(wù)描述在爬蟲的開發(fā)中,需要把有用的信息從一大段文本中提取出來。正則表達(dá)式是提取信息的方法之一。本任務(wù)是使用python正則表達(dá)式拆分浪潮官網(wǎng)的數(shù)據(jù)。使用python正則表達(dá)式半自動(dòng)爬取拆分浪潮官網(wǎng)的數(shù)據(jù)思路如下:(1)打開編輯器,引入使用正則表達(dá)式所需要的包。(2)模擬瀏覽器請(qǐng)求,請(qǐng)求浪潮官網(wǎng)的數(shù)據(jù)。(3)使用findall方法匹配所有的<h3>標(biāo)題。(4)使用正則表達(dá)式提取所有的鏈接。任務(wù)步驟第一步導(dǎo)入模塊re模塊:python內(nèi)置的正則表達(dá)式模塊。requests模塊:http請(qǐng)求模塊。urllib.request:主要用到里面的headers模擬瀏覽器請(qǐng)求。importcsvimportre#導(dǎo)入python自帶的http請(qǐng)求庫(kù)urllib庫(kù)的request請(qǐng)求模塊importrequestsimporturllib.request第二步使用requests爬取整個(gè)網(wǎng)站,代碼如下。#html存入了整個(gè)網(wǎng)頁(yè)內(nèi)容html=requests.get('/')html=html.text第三步使用正則表達(dá)式匹配網(wǎng)頁(yè)標(biāo)題(title)通過對(duì)源代碼的觀察我們發(fā)現(xiàn),需要的網(wǎng)頁(yè)標(biāo)題title是放置在<title></title>之間的文本內(nèi)容,那這個(gè)時(shí)候就需要用到正則表達(dá)式來匹配其中的內(nèi)容了。'<title>(.*?)</title>'。代碼如下。title_re='<title>(.*?)</title>'第四步使用findall方法匹配所有的<h3>標(biāo)題article_re='<h3>.*</h3>'article_titles=re.findall(article_re,html)forart_titleinarticle_titles:print(art_title)輸出效果如下圖所示第五步使用正則表達(dá)式提取所有的鏈接。url
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全程獨(dú)家代賣合同范本
- 華帝櫥柜合同范例
- 組裝電腦銷售合同范本
- 單位電路維修合同范本
- 鋼結(jié)構(gòu)廠房拆除合同范本
- 吊頂線型燈采購(gòu)合同范例
- 合同范本商務(wù)
- 變更臨時(shí)租賃合同范本
- 交車合同范本
- 倒運(yùn)費(fèi)合同范本
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 《多彩的節(jié)日民俗》(教學(xué)設(shè)計(jì))浙教版四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)
- 2025年黃河水利職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)新版
- 2025年健康咨詢管理服務(wù)合同范文
- 光學(xué)鏡片透光率測(cè)量基準(zhǔn)
- 歷史-貴州省貴陽(yáng)市2025年高三年級(jí)適應(yīng)性考試(一)(貴陽(yáng)一模)試題和答案
- 2025年01月2025全國(guó)婦聯(lián)所屬在京事業(yè)單位公開招聘93人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 輻射安全管理測(cè)試題含答案
- 2025年北京社會(huì)管理職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024年參考題庫(kù)含答案解析
- 信息系統(tǒng)項(xiàng)目計(jì)劃書
- 2025學(xué)生管理工作計(jì)劃怎么寫
評(píng)論
0/150
提交評(píng)論