Python爬取企業(yè)會(huì)計(jì)準(zhǔn)則解讀暨docx庫入門

為了便于廣大會(huì)計(jì)人員學(xué)習(xí)會(huì)計(jì)準(zhǔn)則蹋半,加深對(duì)企業(yè)會(huì)計(jì)準(zhǔn)則內(nèi)容的理解嗅榕,會(huì)計(jì)準(zhǔn)則委員會(huì)收集了實(shí)務(wù)中反映的企業(yè)會(huì)計(jì)準(zhǔn)則相關(guān)問題窥突,組織企業(yè)會(huì)計(jì)準(zhǔn)則咨詢委員開展研究谬墙,就相關(guān)問題進(jìn)行了解答今布,并在會(huì)計(jì)準(zhǔn)則委員會(huì)網(wǎng)站發(fā)布经备,供廣大會(huì)計(jì)人員學(xué)習(xí)參考。今天部默,我們就來爬取企業(yè)會(huì)計(jì)準(zhǔn)則解讀吧侵蒙。

網(wǎng)址:

https://www.casc.org.cn/qykjzzjd/

image

步驟拆解:

1、觀察網(wǎng)頁

2傅蹂、請(qǐng)求數(shù)據(jù)

3纷闺、解析數(shù)據(jù)

4、保存數(shù)據(jù)——docx庫入門

第一步 觀察網(wǎng)頁

1份蝴、谷歌瀏覽器右鍵“檢查”犁功,點(diǎn)擊“Network”,刷新頁面婚夫。

2浸卦、點(diǎn)擊最上面名為“qykjzzjd/”的鏈接,

3案糙、點(diǎn)擊“Response”限嫌,發(fā)現(xiàn)我們需要的數(shù)據(jù)在這里。

image

第二步 請(qǐng)求數(shù)據(jù)

我們使用requests庫請(qǐng)求數(shù)據(jù),查看“Headers”發(fā)現(xiàn)請(qǐng)求方法為get請(qǐng)求时捌。

image

于是我們輸入如下代碼怒医,先看看有沒有請(qǐng)求成功,我們發(fā)現(xiàn)請(qǐng)求結(jié)果是<Response[200]>奢讨,數(shù)字是200說明請(qǐng)求成功稚叹,數(shù)字不是200說明請(qǐng)求失敗。

image

我們?cè)賮砜纯次覀冋?qǐng)求的結(jié)果是什么禽笑,我們輸入r.text入录,發(fā)現(xiàn)返回值是亂碼蛤奥。

image

這是什么原因呢佳镜?

想象一個(gè)場景,假設(shè)你完全不懂英語凡桥,一個(gè)人對(duì)你說“Good night”蟀伸,你是不是會(huì)把這句話解析成“姑奶奶”(這是武林外傳小貝穿越的場景),這就是驢頭不對(duì)馬嘴了缅刽,用中文解析英文固然如此“√停現(xiàn)實(shí)世界有不同的語言,計(jì)算機(jī)世界也有不同的語言衰猛,我們叫它為編碼方式迟蜜,常見編碼方式有:ASCII編碼、GBK編碼啡省、UTF-8編碼娜睛。

我們采用reqeusts庫請(qǐng)求數(shù)據(jù)的時(shí)候髓霞,默認(rèn)encoding是ISO-8859-1。但我們?cè)诓榭础癛esponse”畦戒,在<head>標(biāo)簽中的<meta>標(biāo)簽中方库,有一個(gè)“charset=’utf-8’”,即網(wǎng)站的編碼方式是utf-8障斋。我們用ISO-8859-1解碼utf-8纵潦,肯定會(huì)出現(xiàn)亂碼。

image
image

apparent_encoding會(huì)從網(wǎng)頁的內(nèi)容中分析網(wǎng)頁編碼的方式垃环,當(dāng)網(wǎng)頁出現(xiàn)亂碼時(shí)可以把a(bǔ)pparent_encoding的編碼格式賦值給encoding邀层。此時(shí)我們?cè)倏磖.text,發(fā)現(xiàn)沒有亂碼了遂庄。

image

代碼如下:

import requests
from bs4 import BeautifulSoup
from docx import Document
#1被济、請(qǐng)求數(shù)據(jù)
url='https://www.casc.org.cn/qykjzzjd/'
r=requests.get(url)
r.encoding=r.apparent_encoding

第三步 解析數(shù)據(jù)

我們采用BeautifulSoup庫來解析數(shù)據(jù)。

通過檢查網(wǎng)頁涧团,我們發(fā)現(xiàn)所有企業(yè)會(huì)計(jì)準(zhǔn)則解讀存儲(chǔ)在class="newsConclearfix"的<div>標(biāo)簽下只磷,每行企業(yè)會(huì)計(jì)準(zhǔn)則解讀存儲(chǔ)在上述標(biāo)簽的’li’標(biāo)簽下,在該標(biāo)簽下我們可獲取子鏈接泌绣。

image

獲取子鏈接后钮追,如下圖所示,我們發(fā)現(xiàn)企業(yè)會(huì)計(jì)準(zhǔn)則解讀的具體信息存儲(chǔ)子鏈接的class="pageInfo"的<div>標(biāo)簽下阿迈,其中標(biāo)題存儲(chǔ)在<h1>標(biāo)簽中元媚,標(biāo)題下的備注存儲(chǔ)在class="pageInfoLittle"的<div>標(biāo)簽中,正文段落存儲(chǔ)在class="infoCon"的<div>標(biāo)簽中苗沧。

image

代碼如下:

#2刊棕、解析數(shù)據(jù)
soup=BeautifulSoup(r.text,'html.parser')
doc=Document()
for li in soup.find('div',class_="newsCon clearfix").find_all('li'):
    url2='https:'+li.find('a').get('href')#獲取子頁面網(wǎng)址
    r2=requests.get(url2)#請(qǐng)求子頁面數(shù)據(jù)
    r2.encoding=r2.apparent_encoding
    soup2=BeautifulSoup(r2.text,'html.parser')#解析子頁面數(shù)據(jù)
    content=soup2.find('div',class_="pageInfo")#獲取子頁面數(shù)據(jù)
    title=content.h1.text#獲取子頁面標(biāo)題
    info=content.find('div',class_="pageInfoLittle").text#獲取子頁面標(biāo)題下備注
    paragraph=content.find('div',class_="infoCon").text#獲取子頁面正文

第四步 存儲(chǔ)數(shù)據(jù)

我們想把網(wǎng)頁內(nèi)容存儲(chǔ)成文檔,這就需要docx庫待逞。

1甥角、docx庫的安裝

錯(cuò)誤方法(不要嘗試,不要嘗試识樱,不要嘗試`臀蕖)

這是我踩過的坑。

通過Anaconda的Anaconda Prompt命令窗口安裝docx怜庸,輸入一下指令:

pip install docx

命令窗口顯示成功后当犯,在開發(fā)環(huán)境中輸入import docx測試三方庫有沒有成功,顯示

Import Error: No module named 'exceptions'

原因是通過命令行下載的docx安裝包還沒有完全兼容python3割疾,因此需要自己找一個(gè)兼容的包進(jìn)行安裝嚎卫。

正確方法

(1)下載docx庫的whl文件。

下載地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

image

在以上網(wǎng)址中點(diǎn)擊

python_docx?0.8.10?py2.py3?none?any.whl進(jìn)行下載

image

(2)安裝docx庫

打開Anaconda Prompt宏榕,選擇開始菜單-Anaconda3-Anaconda Prompt拓诸。

在命令行中輸入:pip install whl文件路徑+whl文件名稱胸懈。

以本電腦為例,下載的docx庫的whl文件存放在C:\Users\mi\Downloads文件夾中恰响,因此在命令行中輸入:

pip install C:\Users\mi\Downloads\python_docx-0.8.10-py2.py3-none-any.whl
image
image
image

2趣钱、docx庫的使用——以企業(yè)會(huì)計(jì)準(zhǔn)則解讀的保存為例

(1)引入docx庫

from docx import Document

(2)創(chuàng)建文檔對(duì)象

doc=Document()

(3)文檔編輯

doc.add_heading(title)#添加標(biāo)題
doc.add_paragraph(info)#添加段落
doc.add_paragraph(paragraph)#添加段落

(4)文檔保存

doc.save('企業(yè)會(huì)計(jì)準(zhǔn)則解讀.docx')#保存文檔

全套代碼:


import requests
from bs4 import BeautifulSoup
from docx import Document
#1、請(qǐng)求數(shù)據(jù)
url='https://www.casc.org.cn/qykjzzjd/'
r=requests.get(url)
r.encoding=r.apparent_encoding
#2胚宦、解析數(shù)據(jù)
soup=BeautifulSoup(r.text,'html.parser')
doc=Document()
for li in soup.find('div',class_="newsCon clearfix").find_all('li'):
    url2='https:'+li.find('a').get('href')#獲取子頁面網(wǎng)址
    r2=requests.get(url2)#請(qǐng)求子頁面數(shù)據(jù)
    r2.encoding=r2.apparent_encoding
    soup2=BeautifulSoup(r2.text,'html.parser')#解析子頁面數(shù)據(jù)
    content=soup2.find('div',class_="pageInfo")#獲取子頁面數(shù)據(jù)
    title=content.h1.text#獲取子頁面標(biāo)題
    info=content.find('div',class_="pageInfoLittle").text#獲取子頁面標(biāo)題下備注
    paragraph=content.find('div',class_="infoCon").text#獲取子頁面正文
#3首有、保存數(shù)據(jù)
    doc.add_heading(title) #添加標(biāo)題
    doc.add_paragraph(info) #添加段落
    doc.add_paragraph(paragraph) #添加段落
doc.save('企業(yè)會(huì)計(jì)準(zhǔn)則解讀.docx') #保存文檔
**結(jié)果如下:**

![image](https://upload-images.jianshu.io/upload_images/27224266-a478d5fdd60b16e9?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者枢劝。
  • 序言:七十年代末井联,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子您旁,更是在濱河造成了極大的恐慌烙常,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹤盒,死亡現(xiàn)場離奇詭異蚕脏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)侦锯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門驼鞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尺碰,你說我怎么就攤上這事挣棕。” “怎么了亲桥?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵洛心,是天一觀的道長。 經(jīng)常有香客問我题篷,道長词身,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任悼凑,我火速辦了婚禮偿枕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘户辫。我一直安慰自己,他們只是感情好嗤锉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布渔欢。 她就那樣靜靜地躺著,像睡著了一般瘟忱。 火紅的嫁衣襯著肌膚如雪奥额。 梳的紋絲不亂的頭發(fā)上苫幢,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音垫挨,去河邊找鬼韩肝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛九榔,可吹牛的內(nèi)容都是我干的哀峻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哲泊,長吁一口氣:“原來是場噩夢啊……” “哼剩蟀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起切威,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤育特,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后先朦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缰冤,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年喳魏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锋谐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡截酷,死狀恐怖涮拗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情迂苛,我是刑警寧澤三热,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站三幻,受9級(jí)特大地震影響就漾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜念搬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一抑堡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朗徊,春花似錦首妖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春棚壁,著一層夾襖步出監(jiān)牢的瞬間杯矩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工袖外, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留史隆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓曼验,卻偏偏與公主長得像泌射,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚣驼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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