pagetakaBlog

最近リフォームと鳥取県日南町の記事多め。写真、PC、ネット等の話題も

東証株式相場表:PDFMinerで解析しMySQLへの流れ(5)まだエラーが二つ

東証株式相場表(日報、PDF)を解析するPythonスクリプトでエラー二つ

PDFMinerを使って動くのは動くんです…ええ。「警告」程度なんでしょうね。
ひとつめは、ひとまず画像で。

【"start" is not a known member of "None"PylancereportOptionalMemberAccess】
【"start" is not a known member of "None"PylancereportOptionalMemberAccess】

もう一つは、

    parser = PDFParser(fp)
    # PDFDocumentオブジェクト取得
    doc = PDFDocument(parser)
    rmgr = PDFResourceManager() # PDFResourceManagerオブジェクト取得
    lprms = LAParams(boxes_flow=None)   # LAParamsオブジェクト取得 ※ここ大切 パラメタFalseだと狂う
    device = TextConverter(rmgr, outfp, laparams=lprms)    # TextConverterオブジェクト取得
    iprtr = PDFPageInterpreter(rmgr, device) # PDFPageInterpreterオブジェクト取得

の中の、「boxes_flow=None」の部分です。

ひとつめ:「.start()」は、メンバーではないとのご託宣

「"start" is not a known member of "None"」とのPylanceさまからのご託宣です。「group()」も同様のエラーですが、実際に動かすPythonスクリプトには使っていません。例示スクリプトということで掲載しました。

実際には動いてくれるようです。爺のPCでは…。Win11, i5-9600k, 32GBメモリ, 512GB SSD、という環境です…。

import re

text_page ='東証株式相場表(日報)を見たら \
「TOKYO PRO Market銘柄」という市場区分がありました'
proM = 'TOKYO PRO Market銘柄'
if re.search(proM,text_page):
    s_pos = re.search(proM,text_page).start() 
    print('s_pos:',s_pos)
    s_group = re.search(proM,text_page).group() 
    print('s_group:',s_group)

みなさまのPCではいかがなもんでしょう…。これを解決できないままスクリプトを改めて公開するかどうか悩んでおります…(ほぼフリ)。

ふたつめ:「boxes_flow=None」はリファレンスにはあるけど…警告エラーが

Composable API」を見ましたら、「boxes_flow」の箇所は次のようになっていました。

boxes_flow – Specifies how much a horizontal and vertical position of a text matters when determining the order of text boxes. The value should be within the range of -1.0 (only horizontal position matters) to +1.0 (only vertical position matters). You can also pass None to disable advanced layout analysis, and instead return tex

自動翻訳だと、だいたいこういうことに…。

boxes_flow – テキスト ボックスの順序を決定する際に、テキストの水平および垂直位置がどの程度重要かを指定します。 値は -1.0 (水平位置のみが重要) から +1.0 (垂直位置のみが重要) の範囲内である必要があります。 None を渡して高度なレイアウト分析を無効にし、代わりに tex を返すこともできます

「None]をつかえることになってますよね~。でも、VSCode上では警告の赤波線が出るのです。ちなみに、「False」を代わりに置くと、赤波線は消えるのですが、結果がNGとなります。吐き出されるテキスト・データの位置があっちに行ったり、こっちに来たりと…。

これって、無視して進めるしかないですかね。

PDFMiner使ったPythonスクリプトは、ふたつの警告エラーを除けば何とか動いてくれてる…みたい。

ふたつの「警告エラー」があっても、およそ動いてくれているようです。
東証株式相場表(日報、PDF)を解析し、CSVにしてくれるPythonスクリプトを改めて公開できる日もそう遠くないのではと、爺は妄想してます。
現在の状況は、次の通りです。

  • PDF一日分(約400ページ)のうち、解析するのは「TOKYO PRO Market銘柄」以前の約160ページ
  • 解析ページ数が減ったので、かかる時間がおよそ半分になりました
  • 現在、テストが済んだのは、(1)「TOKYO PRO Market銘柄」を含むページの解析、(2)単日の解析(約3,800銘柄)
  • この後、3月1日分から連続処理し、CSVが無事できあがるかチェックする予定……