利用python下載scihub成文獻為PDF操作_python

來源:腳本之家  責任編輯:小易  

這個比較簡單i=0fw=open('0.txt','w')for line in open('fn.txt','r'):fw.write(line)i+1if i%3=2:fw.close()fw=open(str(i)+'.txt','w')fw.close()差不多就這樣,你試試,我沒有測試www.anxorj.tw防采集請勿采集本網。

scihub是科研利器,這就不多說了,白嫖文獻的法門,一般采用的是網頁或者桌面程序,一般都會跳轉到網頁進行加載出文獻,但是這很不方便,畢竟全手動,這里無意中看到一個寫好的pip工具scihub2pdf ,于是試一下它手動威力,如果這能夠成功,也就是我們以后如果想批量下載也是沒問題的。

1、在用python的requests庫時利用post模擬上傳數據網站會跳轉到另外一個網站在做頁面分析時發現。2、可從服務器返回的響應標頭中找到該url請問如何獲得post后服務器返回的headers信息。

1.首先我們得安裝它:

按照題目要求編寫的Python的階乘遞歸程序如下 def jiecheng(n): if n=1: return 1 else: return n*jiecheng(n-1) print(jiecheng(5)) 源代碼(注意源代碼的縮進)

pip install scihub2pdf

代碼如下,注釋也在里面: include include int main() { int num,a,b,c;輸入三位數 printf(\"請輸入一個三位整數:\\n\");scanf(\"%d\",&num);輸出各位數 a=num/100;b=(num-a*100)/10;c=(num-a*100-b*

2.緊接著安裝npm和phantomjs,因為這個代碼里面使用了phantomjs

可以寫很多的,一般就是同樣的文件可以進行批處理。提取出需要的部分。

yum install npm

# 對WinRAR功能進行命令行式調用封裝 class WinRAR(): staticmethod def Compress(filesPath,rarPath,inBack=True, toPartsBySize=0,toPartsByNumberOfFiles=1): u'''用WinRar壓縮目錄或文件,多

切換到國內源,威力網速給力,npm是nodejs的倉庫,我們類比成python的pip即可

npm config set registry https://registry.npm.taobao.org

安裝 phantomjs

npm install -g phantomjs

如果順利成功的話,就可以試一下這個工具了

3.scihub2pdf的使用

先來看一下使用幫助

[[email protected]_0_9_centos ~]# scihub2pdf -husage: scihub2pdf [-h] [--input INPUTFILE] [--title] [--uselibgen] [--location LOCATION] [--txt] SciHub to PDF ---------------------------------------------------- Downloads pdfs via a DOI number, article title or a bibtex file, using the database of libgen(sci-hub). Given a bibtex file $ scihub2pdf -i input.bib Given a DOI number... $ scihub2pdf 10.1038/s41524-017-0032-0 Given a title... $ scihub2pdf --title An useful paper Arxiv... $ scihub2pdf arxiv:0901.2686 $ scihub2pdf --title arxiv:Periodic table for topological insulators ## Download from list of items Given a text file like ``` 10.1038/s41524-017-0032-0 10.1063/1.3149495 ..... ``` download all pdf's ``` $ scihub2pdf -i dois.txt --txt ``` Given a text file like ``` Some Title 1 Some Title 2 ..... ``` download all pdf's ``` $ scihub2pdf -i titles.txt --txt --title ``` Given a text file like ``` arXiv:1708.06891 arXiv:1708.06071 arXiv:1708.05948 ..... ``` download all pdf's ``` $ scihub2pdf -i arxiv_ids.txt --txt ```----------------------------------------------------- @author: Bruno Messias @email: [email protected] @telegram: @brunomessias @github: https://github.com/bibcure/sci2pdfoptional arguments: -h, --help show this help message and exit --input INPUTFILE, -i INPUTFILE bibtex input file --title, -t download from title --uselibgen Use libgen.io instead sci-hub. --location LOCATION, -l LOCATION folder, ex: -l 'folder/' --txt Just create a file with DOI's or titles

我們可以粗略看到,這個不僅僅可以doi還可批量的doi寫在一個文件里,進行批量下載,更牛的是可以直接使用論文標題進行下載,這就理解為啥這里面需要想依賴phantomjs了,這玩意就是爬蟲用的。

我們來試一下:

[[email protected]_0_9_centos ~]# scihub2pdf 10.1063/1.4991232

注意的是,這里需要修改源碼,因為用的鏈接不對,我們應該使用http://sci-hub.tw/而不是http://sci-hub.cc,在源碼(我自己的是在vim /opt/AN/lib/python3.7/site-packages/scihub2pdf/download.py修改的,根據自己pip安裝的路徑進行調整)的download.py下就可找到進行修改,因為cc這個鏈接已經用不了的。

還可以下載arxiv上的論文,比如

[[email protected]_0_9_centos ~]# scihub2pdf arxiv:2003.02355

下載時間都是有點慢的,要等一會才能成功,因為都是訪問的國外的網站

以上這篇利用python下載scihub成文獻為PDF操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持真格學網。

基本功能:輸入并存儲學生的信息:通過輸入學生的學號、姓名、和分數,然后就可以把數據保存在建立的student文件里面。打印學生的所有信息:通過一個打印函數就可以把所有的信息打印在屏幕上。修改學生信息:這個功能首先通過查詢功能查詢出該學生是否存在,如果存在就對該學生的信息進行修改,如果不存在則返回到主界面。刪除學生信息:該功能是對相應的學生進行刪除操作,如果學生存在就查找到進行刪除。按學生成績進行排序:這個功能是按照學生的成績進行排序,對學生的信息進行操作。查找學生信息:這個功能通過輸入學號,查找該學生的信息,如果有該學號就輸出該學生的信息,沒有該學號就提示輸入的學號不存在。初始化功能系統在開始使用之前先進行初始化功能,判斷students.txt文件中是否保存的有學生的信息,如果有就把文件的內容讀取出來,供接下來的操作使用,如用沒有就初始化一個空的列表,用來保存用戶的輸入,程序中接下來的所有數據都會保存在該列表中相當與一個數據緩沖區。首先是打開文件操作,對文件中的內容進行讀取操作,由于在文件中保存的內容是由空格進行分割的,并且每一個學生的信息都占用一行,首先讀出所有的內容,先進行按照換行進行分割,得到每個人的信息,然后再對每個人的信息進行安裝空格分隔,得到每個人的詳細信息包括用戶的姓名,學號,成績。def Init(stulist):#初始化函數 print"初始化."file_object=open('students.txt','r')for line in file_object:stu=Student()line=line.strip("\\n")s=line.split("")stu.ID=s[0]stu.name=s[1]stu.score=s[2]stulist.append(stu)print"初始化成功!成績排序實現這部分代碼是按照學生成績的高低進行排序,在實現的時候,首先是把所有人的成績放到一個列表里面然后使用插入排序,按照成績的大小對StuList中保存的學生信息的地址進行排序def Sort(stulist):#按學生成績排序 Stu=[]sum_count=[]for li in stulist:temp=[]temp.append(li.ID)temp.append(li.name)temp.append(int(li.score1))temp.append(int(li.score2))temp.append(int(li.score3))temp.append(int(li.sum))sum_count.append(int(li.sum))Stu.append(temp)#print sum_count#print Stu;print stulist insertSort(sum_count,stulist)#print stulist;display(stulist)def insertSort(a,stulist):for i in range(len(a)-1):#print a,i for j in range(i+1,len(a)):if a[i][j]:temp=stulist[i]stulist[i]=stulist[j]stulist[j]=temp內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • python實現下載文件的三種方法
  • python爬蟲文件下載圖文教程
  • 詳解使用python下載文件的幾種方法
  • python網絡編程之文件下載實例分析
  • python mysql 字段與關鍵字沖突的解決方式
  • python使用re模塊正則提取字符串中括號內的內容示例
  • django中media媒體路徑設置的步驟
  • 從零學python系列之教你如何根據圖片生成字符畫
  • 使用kivy將python程序打包為apk文件
  • pandas操作csv文件的讀寫實現方法
  • 可用于監控 mysql master slave 狀態的python代碼
  • postman傳遞當前時間戳實例詳解
  • python代碼執行時間測量模塊timeit用法解析
  • centos 7如何實現定時執行python腳本
  • 利用Python做一個學生成績管理系統
  • 利用python進行文本分割,每三行分成一個新文件
  • 想學python下載了anaconda還要下載其他東西嗎????因為下載了typhon后程
  • 如何利用Python對PDF文件做OCR識別
  • 利用python的requests庫如何獲取post后服務器返回的headers信息?
  • 利用Python遞歸實現5!,即1*2*3*4*5
  • 利用Python編寫程序,輸入一個三位數,分離出各位數上的數字并輸出
  • 利用python的列表和文件處理的知識可以做一個怎么的小程序
  • 如何利用python調用windows自帶解壓工具
  • 如何利用python dbus來發送一個信號
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全vbsdos/bathtahtcpythonperl游戲相關vba遠程腳本coldfusionruby專題autoitseraphzonepowershelllinux shellluagolangerlang其它首頁pythonpython實現下載文件的三種方法python爬蟲文件下載圖文教程詳解使用python下載文件的幾種方法python網絡編程之文件下載實例分析python mysql 字段與關鍵字沖突的解決方式python使用re模塊正則提取字符串中括號內的內容示例django中media媒體路徑設置的步驟從零學python系列之教你如何根據圖片生成字符畫使用kivy將python程序打包為apk文件pandas操作csv文件的讀寫實現方法可用于監控 mysql master slave 狀態的python代碼postman傳遞當前時間戳實例詳解python代碼執行時間測量模塊timeit用法解析centos 7如何實現定時執行python腳本python入門教程 超詳細1小時學會python 列表(list)操作方法詳解python 元組(tuple)操作詳解python 字典(dictionary)操作詳解pycharm 使用心得(一)安裝和首python strip()函數 介紹pycharm 2020最新永久激活碼(附python 中文亂碼問題深入分析python中使用xlrd、xlwt操作excepython科學計算環境推薦——anacpython中的反斜杠問題深入講解python中使用asyncio 封裝文件讀寫python對列表中的各項進行關聯詳解python統計時間內的并發數代碼實例python通過兩個dataframe用for循環求笛卡python簡單實現查找一個字符串中最長不重python實現楊氏矩陣查找python中有趣在__call__函數淺析python 動態庫m.so.1.0錯誤問題python對驗證碼降噪的實現示例代碼
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载