《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目4:抽取網(wǎng)頁(yè)數(shù)據(jù)_第1頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目4:抽取網(wǎng)頁(yè)數(shù)據(jù)_第2頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目4:抽取網(wǎng)頁(yè)數(shù)據(jù)_第3頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目4:抽取網(wǎng)頁(yè)數(shù)據(jù)_第4頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目4:抽取網(wǎng)頁(yè)數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論