python
python-docxでハイパーリンクを取得する方法

はじめに

python-docxで全文を抽出したら、ハイパーリンクの箇所が抜けていたので、ハイパーリンクの中身を取得する方法を調べた

ハイパーリンク・・・だけを抽出

うーん、色々と調べたのだけれども、とりあえず以下の様にすると、ファイルのハイパーリンクを抜き出す事ができる。


from docx import Document
from docx.opc.constants import RELATIONSHIP_TYPE
document = Document('test.docx')
rels = document.part.rels

test=[]
for rel inrels:
    if rels[rel].reltype == RELATIONSHIP_TYPE.HYPERLINK:
        test.append(rels[rel]._target)


print(test)

が、これには問題がある。ハイパーリンクを設定している元のテキストがない。ソースを見たのだけれども、ここではないどこかに格納されてるっぽくて、探し出せなかった。

一応、python-docx2txt を使えば、ハイパーリンクの元のテキストも取得できるが。。。

python-docx2txtを使えば、元のテキストをとれるが、肝心のハイパーリンクはない・・・両方併せれば・・・と考えたが、どこにハイパーリンクが設定されてるのかいまいちわからないので、使えなかった。

とりあえず、使わなそうだけど、いつか使う時がくるかもしれないので記載