1. 程式人生 > >分享一個從IEEE Xplore上批量下載會議論文的方法

分享一個從IEEE Xplore上批量下載會議論文的方法

部落格地址

標籤(空格分隔): IEEE Xplore, bash

測試環境:Ubuntu 15.04, 中山大學

首先,從下載一篇論文開始,在IEEE Xplore上任意下載一篇論文,獲取下載連結, 如:

http://ieeexplore.ieee.org/ielx7/6875427/6877223/06877226.pdf?tp=&arnumber=6877226&isnumber=6877223

擷取?前面部分:

http://ieeexplore.ieee.org/ielx7/6875427/6877223/06877226.pdf

然後,Linux上使用wget命令可以快速地從指定URL下載檔案(後面也是使用這個命令來實現批量下載),

此處輸入圖片的描述

一篇論文就這麼下載了,所以,要實現批量下載,必須要獲取所有論文的下載URL,其實,多下載幾篇論文比較下它們的下載連結就可以發現:

http://ieeexplore.ieee.org/ielx7/6875427/6877223/06877326.pdf?tp=&arnumber=6877326&isnumber=6877223
http://ieeexplore.ieee.org/ielx7/6875427/6877223/06877325.pdf?tp=&arnumber=6877325&isnumber=6877223
http://ieeexplore.ieee.org/ielx7/6875427
/6877223/06877324.pdf?tp=&arnumber=6877324&isnumber=6877223

下載連結的格式如下,(前兩串數字即“6875427”和“6877223”對於同一個會議都是相同的,所以只需要獲取一次就可以了):

http://ieeexplore.ieee.org/ielx7/6875427/6877223/0{arnumber}.pdf

所以,可以將下載連結分為兩個部分, 注意arnumber前面有多了一個0

http://ieeexplore.ieee.org/ielx7/6875427/6877223/ 和 0{arnumber}.pdf

問題就變成,如何獲取所有論文的arnumber了,這個方法就有兩種,一種可以使用爬蟲,解析網頁獲取,但是寫程式碼來比較麻煩,這裡使用另外一種,IEEE Xplore提供了一個Download Citations的功能,如圖:

此處輸入圖片的描述

下載後儲存至檔案,

Thangavel, M.; Chandrasekaran, M.; Madheswaran, M., "Analysis of B-mode transverse ultrasound common carotid artery images using contour tracking by particle filtering technique," in Devices, Circuits and Systems (ICDCS), 2012 International Conference on , vol., no., pp.470-473, 15-16 March 2012
doi: 10.1109/ICDCSyst.2012.6188759
keywords: {biodiffusion;biomedical ultrasonics;blood vessels;cardiovascular system;diseases;filters;image denoising;image segmentation;medical image processing;particle filtering (numerical methods);speckle;ultrasonic imaging;B-mode transverse ultrasound common carotid artery images;atherosclerosis;cardiovascular diseases;contour tracking;edge preserving anisotropic diffusion filter;image segmentation;medical image analysis;particle filtering technique;speckle noises;speckle reduction;Fitting;Image segmentation;Image Segmentation;Medical imaging;Particle filtering;Ultrasound image},
URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6188759&isnumber=6188639

其中包含了每一篇論文的資訊,包括標題(可以用來檔案命名),關鍵字,URL等資訊,其中的URL並不能直接用來wget下載論文,但是包含了我們要獲取的arnumber資訊,好了~接下來要做的就是從這些資訊裡面抽取arnumber和論文標題了

觀察下載後的Citations資訊,發現論文標題都包含在雙引號之間,即“”標題””這樣,arnumber即“arnumber=6188759”,那就用正則表示式來匹配吧,看命令:

cat {citations file} | grep -o -e "arnumber=[0-9]*" -e '"[^\"]*"' >> "{save file}"

實現了從剛才下載的索引檔案裡抽取出論文標題arnumber資訊,並儲存至另外一個檔案的功能,其中有兩個正則表示式, 分別用來匹配arnumber和論文標題,得到的資訊如下:

"Algorithm Engineering for Scalable Parallel External Sorting,"
arnumber=6012805
"Power-Aware Replica Placement and Update Strategies in Tree Networks,"
arnumber=6012820
"Minimum Cost Resource Allocation for Meeting Job Requirements,"
arnumber=6012821

每兩行代表一篇論文的標題和arnumber,然後就好辦了,進行Shell程式設計, 迴圈讀取以上的資訊,使用arnumber去下載,然後用論文標題作為檔名儲存,那麼,如何讀取呢~

#!/bin/bash
base="http://ieeexplore.ieee.org/ielx7/6875427/6877223/"
file="檔名.txt"
while read -r title; read -r arnumber
do 
  title=`echo $title | cut -d "\"" -f 2 | cut -d "," -f 1 | sed 's/\///'` #獲取title
  arnumber=`echo $arnumber | cut -d "=" -f 2` #獲取arnumber
  wget "$base/0$arnumber.pdf" #下載
  mv "0$arnumber.pdf" "$title.pdf" #用標題來作為檔名儲存
done < "$file"

儲存為download.sh, 給予它執行的許可權:

sudo chmod +x download.sh

然後./download.sh就可以運行了,等待程式執行完就ok了~

上面還用到了兩個命令, cut 主要用來擷取部分字串, sed用來去除標題中的斜槓,因為斜槓不能出現在檔名中~具體用法不說了

親測,ICDCS 2012, IPDPS 2012-2015 可用~

此處輸入圖片的描述

附上我的完整程式:

#!/bin/bash

base=
file=
tempfile1="downlist.txt" #臨時檔案,用完刪除
tempfile2="urls.txt" #臨時檔案,用完刪除

if [ -f $tempfile1 ]; then
    rm $tempfile1
fi

if [ -f $tempfile2 ]; then
    rm $tempfile2
fi

usage()
{
    echo "Usage: `basename $0` -b url_base_string -f input_file [-h help]"
    exit 1
}

while getopts "b:f:h" arg #選項後面的冒號表示該選項需要引數
do
    case $arg in
         b)
            base=$OPTARG
            ;;
         f)
            file=$OPTARG
            ;;
         h)
            usage
            ;;
         ?)  #當有不認識的選項的時候arg為?
        echo "unkonw argument"
    exit 1
    ;;
    esac
done

if [ -z "$base" ]; then   #該指令碼必須提供-b選項
    echo "You must specify base with -b option"
    exit
fi

if [ -z "$file" ]; then   #該指令碼必須提供-f選項
    echo "You must specify file with -f option"
    exit
fi

cat $file | grep -o -e "arnumber=[0-9]*" -e '"[^\"]*"' >> "$tempfile1"

while read -r title; read -r arnumber #迴圈讀取標題和arnumber
do 
  title=`echo $title | cut -d "\"" -f 2 | cut -d "," -f 1 | sed 's/\///'`
  arnumber=`echo $arnumber | cut -d "=" -f 2`
  echo "$base/0$arnumber.pdf" >> "$tempfile2" #這裡先生成所有下載連結,然後儲存到臨時檔案
done < "$tempfile1"

wget -i $tempfile2 #批量下載論文

echo $?

while read -r title; read -r arnumber #重新命名
do 
  title=`echo $title | cut -d "\"" -f 2 | cut -d "," -f 1 | sed 's/\///'`
  arnumber=`echo $arnumber | cut -d "=" -f 2`
  mv "0$arnumber.pdf" "$title.pdf"
done < "$tempfile1"

if [ -f $tempfile1 ]; then
    rm $tempfile1
fi

if [ -f $tempfile2 ]; then
    rm $tempfile2
fi

用法:./download.sh -b {base url, 需自行獲取} -f {從IEEE Xplore上下載的Citations檔案}

./download.sh -b http://ieeexplore.ieee.org/ielx5/6180033/6188639 -f downloadCitations.txt

有需要可以問我,嗯~@maxuan

相關推薦

分享一個IEEE Xplore批量下載會議論文方法

部落格地址 標籤(空格分隔): IEEE Xplore, bash 測試環境:Ubuntu 15.04, 中山大學 首先,從下載一篇論文開始,在IEEE Xplore上任意下載一篇論文,獲取下載連結, 如: http://ieeexplore.i

分享一個圖片管理程式,圖片批量傳,圖片管理(有圖片)

呵呵,好久沒寫部落格了。今天在此奉上一篇! 關於圖片管理,其實做專案很多地方都用到圖片管理。 比如:產品圖片,新聞圖片,作品圖片。 現分享一篇關於圖片管理的文章,希望大家能用得上。 先來看效果圖吧: 上傳頁面 上傳頁面2圖片選擇頁面。 主要功能: 1.圖片批量上傳。 1)

使用Python百度地圖批量下載興趣點(POI)

背景 編寫這個工具完全是因為資料採集專案需要,由於POI野外採集十分繁瑣,需要定位並錄入名稱、地址等資訊,為了減輕外業人員的負擔,我想到百度地圖上有相關的POI介面可以呼叫,如果能從百度地圖上下載到這

基於Java的一個簡單的檔案下載功能

最近在公司給客戶端做介面,有一個圖片上傳和檔案下載的功能,本來想用Struts來做檔案上傳下載,但是看了下公司好像沒有這個配置,然後看了下同事的程式碼,才發現原來Apache也可以簡單的實現檔案上傳下載。 首先引入commons-io-2.2.jar FileUtils為我

java+jsp程式碼實現FTP伺服器下載檔案

首先宣告一下。jsp從ftp伺服器上面下載檔案,有兩種方法1.直接給出檔案的地址 2.將檔案作為位元組流返回給瀏覽器 一 、先說第一種吧(這種發放很簡單)。 1.直接使用一個超連結:<a href='ftp://FTP使用者名稱:密碼@IP地址:埠號+ 後面是路徑 (

通過cmd命令到ftp批量下載檔案

1、進入DOS命令:win+r,輸入cmd 2、輸入:ftp,回車 3、open IP地址 4、輸入使用者名稱,回車;輸入密碼,回車; 5、切換ftp伺服器的目錄,進入到要下載的目錄下。 6、選擇檔案下載到的本地目錄,lcd "本地目錄" 7、輸入"prompt"

NodeJs實現一個簡易的WEB下載伺服器

專案上的需求是叢集均可生成PDF檔案或是訪問PDF檔案,但是沒有檔案伺服器,故做一個簡易的檔案伺服器。解決方案:叢集內的機器(客戶端)生成PDF檔案之後將PDF檔案推給檔案伺服器,我們暫且稱它為服務端;如果某個客戶端需要訪問到這個PDF檔案,則去服務端獲取(因為可能其他客戶端

伺服器檔案下載的各類方法(全)

1. ssh 安裝SSH Secure Shell Client客戶端 下載連結 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法參考主頁 http://www.cnblogs.com/wxjnew/archive/

python批量下載上次論文,還在爬取貼吧圖片?快用批量下載sci論文吧,根據標題名或者DOI批量下載 scihub 科研下載神器

昨晚在下載scil論文,一共295篇,手動下載的話豈不是要累si? 於是想到有沒有批量下載sci論文的。 在web of science 上匯出下載問下的標題、DOI等txt檔案,然後篩選得到DOI和標題,儲存為新檔案。 通過迴圈得到DOI與標題,下載並儲存成標題命名。 程式參考如下

2018 IEEE IV國際智慧車會議論文接收量創歷史新高!

(長按識別上方二維碼,報名第29屆IEEE IV大會 )距離2018 IEEEIV 國際智慧車會議開幕還有一個月左右的時間,大會組委會近日公佈了本屆IV會議論文收錄情況。本屆IEEE IV大會共收到來自34個國家的603篇論文,接收論文356篇,錄取率為59%,其中282篇C

執行一個GitHub下載的vue專案的具體步驟

1.首先獲取到設定資訊 2.找到克隆的路徑(本步驟不包含下載.zip的方法) 3.開啟 Git Shell->輸入: cd ../../->輸入: cd  想要安裝的路徑->輸入:git clone https://github.com/Sioxas/

java傳附件,批量下載附件(一)

too 批量 download pack indexof req || private reader 上傳附件代碼:借助commons-fileupload-1.2.jar package com.str; import java.io.BufferedInputStrea

分享一個Cisco IOS的下載網站

思科 cisco ios 下載 大家都知道思科的IOS下載是需要權限的,普通註冊個賬戶還不行,下面分享個網站,上面有分享各個版本的IOS下載,自己在初接觸 Cisco Catalyst 3560G-24TS Switch 的時候找到的:http://sfree.ws/ 本文出自 “雪糕豬” 博

用gitgithub網站下載代碼的方式

clone 下載 one image cnblogs src bsp ima 單擊 原本單擊如下下載按鈕即可 但有時候github異常,該按鈕無效,可以使用如下方法: 1.復制url,如https://github.com/ulli-kroll/mt7610u 2.進

youtube批量下載視頻

down see 拷貝 成了 win pyw 一次 con htm 首先fq。然後去youtube找到喜歡的視頻列表。拷貝下來。 然後去這個網站。 https://youtubemultidownloader.com/playlist.html 將url粘貼到紅色筆標註

分享一個開源的網盤下載工具BaiduPCS-Go

eid 下載工具 使用命令 遇到 功能 保存文件 命令的使用 語言 點擊 大家在使用網盤的時候,一定忍受不了限速下載的速度。今天給大家分享一個開源的網盤下載項目BaiduPCS-Go。Go語言編寫,仿 Linux shell 文件處理命令的百度網盤命令行客戶端。多平臺支持,

IIS網站下載AssetBundle,並寫入到本地磁盤指定路徑

Go 裏的 都是 .text mage proc RM oca 怎麽 啊,長嘆一聲,弄了一晚上,加半個白天 先說說歷程吧,主要是踩的坑。 首先打包就不用說了。有.asseetbundle的,有.u3d的,還有就是生成md5列表 然後下載並保存就惡心了。 本來想的很好,思路其

張明貴-Linux文件下載及sCRT配置批量管理功能

http ros 系統版本 uname tro 吸引 聯網 上傳 proc 【講課:互動,用提問的方式來吸引聽眾的註意力,聽眾吸收最大化】大學是在許昌學院讀的,在我看來,不幹念PPT的老師就是好講師,因為大部分任課老師自顧自講,沒有互動,傳授的知識我們只是被動的聽,沒有引導

在項目管理中如何保持專註,分享一個輕量的時間管理工具【Flow Mac版 - 追蹤你在Mac的時間消耗】

統計 都是 https 分享 地址 泄露 瀏覽器中 功能 直接 在項目管理和團隊作業中,經常面臨的問題就是時間管理和優先級管理發生問題,項目被delay,團隊工作延後,無法達到預期目標。 這個仿佛是每個人都會遇到的問題,特別是現在這麽多的內容軟件來分散我們的註意力,一不

如何在客戶端電腦批量添加和刪除同一打印服務器安裝的打印機

wmi connect window script 一個 print 共享 rip interact 批量刪除同一打印服務器上的打印機在要刪除的電腦上運行以下命令:wmic printer where "deviceid like ‘%打印服務器的前綴%‘&quo