數(shù)據(jù)提取

數(shù)據(jù)提取的定義

數(shù)據(jù)提取就是從的響應(yīng)中提取我們想要的數(shù)據(jù)的過(guò)程

數(shù)據(jù)分類(lèi)

????????????????????1.非結(jié)構(gòu)化數(shù)據(jù):html等

????????????????????????處理方法:正則表達(dá)式,xpath

????????????????????2.結(jié)構(gòu)化數(shù)據(jù):json,xml等

????????????????????????處理方法:轉(zhuǎn)化為python數(shù)據(jù)類(lèi)型

數(shù)據(jù)提取之json

? ? ? ? ? ? ? ? json字符串或包含json類(lèi)文件對(duì)象 通過(guò) json.loads() 轉(zhuǎn)化為 python數(shù)據(jù)類(lèi)型

? ??????????????python數(shù)據(jù)類(lèi)型 通過(guò) json.dumps() 轉(zhuǎn)化為??json字符串或包含json類(lèi)文件對(duì)象

? ? ? ? ? ?使用json注意點(diǎn):?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.json中的字符串都是雙引號(hào)引起來(lái)的,如果不是雙引號(hào),使用eval:能夠?qū)崿F(xiàn)簡(jiǎn)單的字符串和python類(lèi)型的轉(zhuǎn)化,使用replace:把單引號(hào)替換為雙引號(hào)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.往一個(gè)文件中寫(xiě)入多個(gè)json串,不在是一個(gè)json串,不能直接讀取

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.一行寫(xiě)一個(gè)json串,按照行來(lái)讀取

數(shù)據(jù)提取之xml

? ? ? ? ? ? ? ? xml被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容,使用xpath提取

? ? ? ? ? ? ? ? xpath:http://www.lxweimin.com/p/1cb12a4d69fd

? ? ? ? ? ? ? ? 要先安裝lxml第三方模塊

? ? ? ? ? ? ? ? lxml能夠修正HTML代碼,但可能會(huì)改錯(cuò)

? ? ? ? ? ? ? ? ? ? 使用etree.tostring觀察修改之后的html的樣子,根據(jù)修改之后的html字符串寫(xiě)xpath

? ? ? ? ? ? ? ? ? ? lxml能夠接受bytes和str的字符串

? ? ? ? ? ? ? ? ? ? 提取頁(yè)面數(shù)據(jù)的思路

? ? ? ? ? ? ? ? ? ? ? ? 1.先分組,取到一個(gè)包含分組標(biāo)簽的列表

? ? ? ? ? ? ? ? ? ? ? ? 2.遍歷,取其中每一個(gè)進(jìn)行數(shù)據(jù)的提取,不會(huì)造成數(shù)據(jù)對(duì)應(yīng)錯(cuò)亂

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容