Lynx
在需要登錄的 Linux VM 中使用命令行工具下載文件
環境:我只能通過命令行控制台訪問的 Linux VM。
目標:我需要下載文件:https ://download.nlm.nih.gov/umls/kss/2020AA/umls-2020AA-full.zip 與使用的典型下載不同
wget
,這會重定向到登錄頁面。我到目前為止所嘗試的:
嘗試使用基於文本的瀏覽器:w3m,elinks。在登錄頁面最近發生變化之前,它曾經可以正常工作。
登錄頁面發生了什麼變化?
早些時候,登錄頁面用於獲取使用者名和密碼。但最近他們引入了通過Google、微軟等登錄的選項。
問題
在我的本地 m/c 中,登錄頁面如下所示:
但是在虛擬機中使用基於文本的瀏覽器進行瀏覽時,它只顯示一個空白頁面。
這個問題有什麼解決辦法嗎?
注意
- https://www.nlm.nih.gov/research/umls/licensedcontent/umlsarchives04.html#2020AA中提到了上述 zip 文件的連結
- 由於它是一個巨大的文件,我無法選擇在本地系統中下載然後將其上傳到 VM。
- 本來是在 StackOverflow 上問這個問題的,但是被建議在這個論壇上提這個問題(所以我刪除了原帖)。
可以使用 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