文献整理2020(12)PubMedのDOIリストから取得したテキストをbeautifulsoupですまし汁にする準備

 Googleで検索すると、PubMedのページにアクセスしてタイトルや抄録テキストを取得するPythonスクリプト例が見つかって、大いに勉強させてもらった。
 PubMedのデータベースに収蔵された書誌データは統一した形式で表示されるので、機械的スクレイピングしやすいが、せいぜい抄録(アブストラクト)までで、全文テキストは収蔵されていない。
 全文を入手するためには、ここから入手したdoiを引いて、論文掲載誌のサイトからスクレイピングしなければならないが、今回対象にしている44,000編の論文の掲載誌それぞれのスタイルファイルにあわせて、スクレイピングのキーとなるdivタグのclassを把握する覚悟が必要である。
 試しにNature誌とScience誌だけはソースコードをダウンロードして解析してみたが、なかなか網羅的に調べるのは難しく、Chromeに読み込んで、デベロッパーツールでclassを調べていくというヒントを得たが、本質的に、本文テキストの入るdivタグのclassパラメーターこそ、スクレイピングして機械学習で解析すべきものなのであろう。
 後日記(2020.12.04)>request.urlopen(url)が大手出版E社のサーバーから立ち入り禁止を食らっている。今に始まった話ではなく、robotや他の自動ダウンロードソフトウェアは使用禁止で、弊社APIを通してねということである。そういえば昔、user-agentを詐称したりするネバネバ系クローラーをデシマルアドレスでdenyするように.htaccessファイルに書いて弾いていたことをしみじみ思い出す。今や逆転して浅ましい立場に堕した自らを顧みて絶句する。E社から出版された論文を除く網羅的収集というのは考えにくく網羅的にできることはPubMedからアブストラクトを抜くことくらいであって、それならZOTEROからエクスポートされたデータを利用するのと変わりはないということである。

本ブログではamazon associate広告を利用しています。