中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

??诰W(wǎng)站建設(shè)運營百度手機(jī)端排名如何優(yōu)化

??诰W(wǎng)站建設(shè)運營,百度手機(jī)端排名如何優(yōu)化,長沙建站做企業(yè)網(wǎng)站公司,監(jiān)控網(wǎng)站建設(shè)需要多少錢個人學(xué)習(xí)筆記,僅供參考。 需求:提取AUTOSAR SWS中所有的API接口信息,用于生成C代碼。 此處以AUTOSAR_SWS_CANDriver.pdf為例,若需要提取多個SWS文件,遍歷各個文件即可。 1.Python包 pdfplumber是一款完全用python開…

個人學(xué)習(xí)筆記,僅供參考。

需求:提取AUTOSAR SWS中所有的API接口信息,用于生成C代碼。
此處以AUTOSAR_SWS_CANDriver.pdf為例,若需要提取多個SWS文件,遍歷各個文件即可。

1.Python包

pdfplumber是一款完全用python開發(fā)的pdf解析庫,對于線框完全的表格,pdfminer能給出比較好的抽取效果,但是對于線框不完全(包含無線框)的表格,其效果就差了不少。因為在實際項目所需處理的pdf文檔中,線框完全及不完全的表格都比較多。
在這里插入圖片描述
備注:安裝時,可能會因為網(wǎng)絡(luò)問題,導(dǎo)致pdfplumber安裝失敗,可以切換國內(nèi)鏡像進(jìn)行安裝,具體命令如下:

pip install pdfplumber -i http://pypi.douban.com/simple

其他國內(nèi)源如下:

清華:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
華中理工大學(xué):http://pypi.hustunique.com/
山東理工大學(xué):http://pypi.sdutlinux.org/

2.實現(xiàn)思路

目標(biāo)表格
在這里插入圖片描述
具體步驟
1、使用extract_tables解析當(dāng)前page所有表格,判斷一個單元格為“Service Name”(關(guān)鍵字)
2、若存在Service Name,將此表格的內(nèi)容追加到總表
3、讀取當(dāng)前表的同時判斷是否是完整的表格,如果不是,則繼續(xù)讀取下一頁,在一起追加到總表
備注:第一個單元格不是“Service Name”,存在兩種情況,一是非我們想要的表格,另一個是部分我們需要的,后者在步驟3中處理掉,所以無影響
參考代碼

import pdfplumberinputFile = "AUTOSAR_SWS_CANDriver.pdf"
functionList = []
# 前15頁無有效信息,為提高效率,減少掃描頁數(shù)
startPage = 15def readPdfFile():global functionListtable_settings = {"vertical_strategy": "lines",    # 對于完整的表格,vertical_strategy與horizontal_strategy都配置為lines"horizontal_strategy": "lines","snap_y_tolerance": 10,          # y方向上較短的線條extract_tables也會識別為表格的邊界,最后導(dǎo)致識別出錯# 這里將最小像素點設(shè)置為10(小于10丟棄線條丟棄)}with pdfplumber.open(inputFile) as pdf:######################################### 僅前期調(diào)試使用,具體使用時,可以屏蔽first_page = pdf.pages[63]  # 指定(63+1)頁P(yáng)DF內(nèi)容im = first_page.to_image()  # 轉(zhuǎn)換為image個數(shù)im.reset().debug_tablefinder(table_settings) # 將table_settings配置效果輸出到圖片方便觀看im.save('xx.PNG', format="PNG", quantize=True, colors=256, bits=8)########################################for j in range(len(pdf.pages) - startPage):page = pdf.pages[j + startPage]table = page.extract_tables(table_settings)for i in range(len(table)):   # 遍歷所有表格row = table[i]if row[0][0] == 'Service Name':      # 找表頭tempList = row                   # 先復(fù)制已有的信息if (i == (len(table)-1)) and (row[-1][0] != 'Available via'):  # 最后一個表,且缺少最后一行,繼續(xù)讀取下一頁的第一個表page1 = pdf.pages[j + startPage + 1]     # 繼續(xù)讀取下一頁table1 = page1.extract_tables(table_settings)for table1_1 in table1[0]:        # 只需要讀取第一個表格(其他的會在在下次循環(huán)中寫入)if table1_1[0] == '':         # 如果第一個表格的第一個參數(shù)為空,代表第一行的參數(shù)的補(bǔ)充,并不是新的參數(shù),所以此處拼接上去tempList[-1][1] += '\n' + table1_1[1]else:                         # 如果不為空,代表是新參數(shù),直接追加即可tempList.append(table1_1)functionList.append(tempList)         # 最后匯總到總表格內(nèi)if __name__ == '__main__':readPdfFile()for i in functionList:print(i)print('共%d個函數(shù)' % len(functionList))

3.輸出結(jié)果

最終保存到全局列表functionList中,后續(xù)可根據(jù)各自的開發(fā)規(guī)范/要求輸出相應(yīng)的代碼。
在這里插入圖片描述

4. 配置說明

table_settings = {"vertical_strategy": "lines",    # 對于完整的表格,vertical_strategy與horizontal_strategy都配置為lines"horizontal_strategy": "lines","snap_y_tolerance": 10,          # y方向上較短的線條extract_tables也會識別為表格的邊界,最后導(dǎo)致識別出錯# 這里將最小像素點設(shè)置為10(小于10丟棄線條丟棄)}

4.1 snap_y_tolerance默認(rèn)值效果

這里可以發(fā)現(xiàn)識別了很多無效的邊界進(jìn)入,導(dǎo)致組成了很多多余的單元格,最終識別出錯,或者無法識別
在這里插入圖片描述
備注:四個正交連接的小圓圈框起來的區(qū)域認(rèn)為是一個單元格,此處不是很明顯,具體可以看下圖

4.2 snap_y_tolerance配置為10效果

可以很明顯看見,上面很多短的邊界被忽略掉了。
在這里插入圖片描述
備注:“Syntax”出個人了解不應(yīng)該識別出來,但是此處任然識別出來了,可能因為左側(cè)的兩點未連接,所以不影響最終結(jié)果,此處未進(jìn)行深入研究,知道的小伙伴,歡迎討論

5. 參考資料

1、https://zhuanlan.zhihu.com/p/352722932
2、https://github.com/jsvine/pdfplumber#visual-debugging
3、https://github.com/jsvine/pdfplumber/blob/stable/examples/notebooks/extract-table-nics.ipynb
4、https://zhuanlan.zhihu.com/p/100460222
5、https://zhuanlan.zhihu.com/p/100462752
6、https://zhuanlan.zhihu.com/p/100464246

http://m.risenshineclean.com/news/41242.html

相關(guān)文章:

  • 6黃頁網(wǎng)站建設(shè)互聯(lián)網(wǎng)公司排名2021
  • 網(wǎng)站開發(fā)日常工作廊坊seo推廣
  • wordpress調(diào)用分類圖片大小長沙靠譜的關(guān)鍵詞優(yōu)化
  • 海外域名提示風(fēng)險網(wǎng)站嗎成都網(wǎng)站seo服務(wù)
  • 濟(jì)南網(wǎng)站建設(shè)維護(hù)公司關(guān)鍵詞挖掘工具網(wǎng)站
  • 哪些調(diào)查網(wǎng)站可以做問卷賺錢可以訪問境外的瀏覽器
  • 瑪伊網(wǎng)站做兼職加入要多少錢推廣哪個平臺好
  • b2b商城網(wǎng)站建設(shè)百度關(guān)鍵詞推廣多少錢
  • 做電影網(wǎng)站怎么掙錢下店拓客團(tuán)隊
  • 百通互聯(lián)網(wǎng)站建設(shè)免費下優(yōu)化大師
  • 網(wǎng)站建設(shè)方案應(yīng)該怎么做網(wǎng)站友鏈
  • 做網(wǎng)站賣假名牌違法嗎網(wǎng)站建設(shè)建站在線建站
  • 委托別人做網(wǎng)站 域名所有權(quán)2021年新聞?wù)?/a>
  • 企業(yè)網(wǎng)站建設(shè)基本步驟沈陽網(wǎng)站關(guān)鍵字優(yōu)化
  • 找個人做網(wǎng)站還是找企業(yè)做網(wǎng)站自己如何優(yōu)化網(wǎng)站排名
  • 廣西做網(wǎng)站的公司有哪些谷歌關(guān)鍵詞工具
  • 網(wǎng)站建設(shè)系統(tǒng)哪家便宜些seo廣告平臺
  • 手表到哪個網(wǎng)站買新網(wǎng)站應(yīng)該怎么做seo
  • 天河做網(wǎng)站哪家好沒干過網(wǎng)絡(luò)推廣能干嗎
  • 通遼做網(wǎng)站制作公司一個公司可以做幾個百度推廣
  • 網(wǎng)購app有哪些?長沙seo計費管理
  • 網(wǎng)站設(shè)計的總結(jié)深圳網(wǎng)站快速排名優(yōu)化
  • 免費建站網(wǎng)站大全長沙網(wǎng)站推廣seo
  • 網(wǎng)站建設(shè)后臺是什么推廣聯(lián)盟平臺
  • 購物網(wǎng)站開發(fā)實戰(zhàn)企業(yè)網(wǎng)站優(yōu)化排名
  • 做國際貿(mào)易都用什么網(wǎng)站seo優(yōu)化排名是什么
  • 網(wǎng)站建設(shè)驗收標(biāo)準(zhǔn)銷售推廣方案
  • 烏魯木齊培訓(xùn)網(wǎng)站建設(shè)網(wǎng)站自然優(yōu)化
  • 黃驊市第三中學(xué)關(guān)鍵詞優(yōu)化包年推廣
  • 如何寫一個可以做報價計算的網(wǎng)站網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)推廣