環境:コマンドラインコンソールを介してのみLinux VMにアクセスできます。
ターゲット:ファイルをダウンロードする必要があります。https://download.nlm.nih.gov/umls/kss/2020AA/umls-2020AA-full.zip
使用される一般的なダウンロードとは異なり、wget
ログインページにリダイレクトされます。
私は今まで何を試しましたか:
テキストベースのブラウザを試してください。w3m、電子リンク。最近ログインページが変更されるまで機能しました。
ログインページはどうなりましたか?
以前は、ログインページでユーザー名とパスワードを使用していました。しかし、最近では、Google、Microsoftなどを介してログインするオプションが導入されました。
質問
私のローカルm / cでは、ログインページは次のようになります。
ただし、仮想マシンでテキストベースのブラウザで検索すると、空白のページのみが表示されます。
この問題に対する解決策はありますか?
気づく
- 上記のzipファイルへのリンクは次のとおりです。https://www.nlm.nih.gov/research/umls/licensedcontent/umlsarchives04.html#2020AA
- ファイルが大きいため、ローカルシステムにダウンロードしてから仮想マシンにアップロードするオプションはありません。
- この質問は元々StackOverflowで質問されましたが、誰かがこのフォーラムに質問するように提案しました(元の投稿を削除しました)。
答え1
APIトークンを使用して、プログラムでUMLSファイルをダウンロードできます。プロセスは次のとおりです。https://documentation.uts.nlm.nih.gov/automating-downloads.html
- ステップ1:UMLS設定ファイルからAPIキーをインポートします。ログインすると、UTS「マイプロファイル」領域でAPIキーを見つけることができます。
- ステップ2:次のスクリプトを使用して必要なファイルをダウンロードします。
#!/bin/bash
export apikey=$1
export DOWNLOAD_URL=$2
export CAS_LOGIN_URL=https://utslogin.nlm.nih.gov/cas/v1/api-key
if [ $# -eq 0 ]; then echo "Usage: download.sh apikey download_url"
echo " e.g. download.sh e33c59db-1234-abcd-efgh-0117ab2cd5gh2 https://download.nlm.nih.gov/umls/kss/rxnorm/RxNorm_full_current.zip"
echo " download.sh e33c59db-1234-abcd-efgh-0117ab2cd5gh2 https://download.nlm.nih.gov/umls/kss/rxnorm/RxNorm_weekly_current.zip"
exit
fi
if [ -z "$apikey" ]; then echo " Please enter you api key "
exit
fi
if [ -z "$DOWNLOAD_URL" ]; then echo " Please enter the download_url "
exit
fi
TGT=$(curl -d "apikey="$apikey -H "Content-Type: application/x-www-form-urlencoded" -X POST https://utslogin.nlm.nih.gov/cas/v1/api-key)
TGTTICKET=$(echo $TGT | tr "=" "\n")
for TICKET in $TGTTICKET
do
if [[ "$TICKET" == *"TGT"* ]]; then
SUBSTRING=$(echo $TICKET| cut -d'/' -f 7)
TGTVALUE=$(echo $SUBSTRING | sed 's/.$//')
fi
done
echo $TGTVALUE
STTICKET=$(curl -d "service="$DOWNLOAD_URL -H "Content-Type: application/x-www-form-urlencoded" -X POST https://utslogin.nlm.nih.gov/cas/v1/tickets/$TGTVALUE)
echo $STTICKET
curl -c cookie.txt -b cookie.txt -L -O -J $DOWNLOAD_URL?ticket=$STTICKET
rm cookie.txt
download.sh
上記のスクリプトを次のように呼び出すことができるファイルに保存します。
$ bash download.sh e33c59db-1234-abcd-efgh-0117ab2cd5gh2 https://download.nlm.nih.gov/umls/kss/2020AB/umls-2020AB-full.zip