日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python實現一個論文下載器的過程

瀏覽:122日期:2022-06-29 16:01:04

在科研學習的過程中,我們難免需要查詢相關的文獻資料,而想必很多小伙伴都知道SCI-HUB,此乃一大神器,它可以幫助我們搜索相關論文并下載其原文。可以說,SCI-HUB造福了眾多科研人員,用起來也是“美滋滋”。

Python實現一個論文下載器的過程

然而,當師姐告訴我:“xx,可以幫我下載幾篇文獻嘛?”。樂心助人的我自當是滿口答應了,心想:“這種小事就交給我叭~”

于是乎,我收到了一個excel文檔,66篇論文的列表安靜地趟在里面(此刻心中碎碎念:“這尼瑪,是幾篇嘛...”)。我粗略算了一下,復制、粘貼、下載,一套流程走下來,每篇論文少說也得30秒,66篇的話....啊,這不能忍!

很顯然,一篇一篇的下載,不是我的風格所以,我決定寫一個論文下載器助我前行。

Python實現一個論文下載器的過程

一、代碼分析

代碼分析的詳細思路跟以往依舊如此雷同,逃不過的還是:抓包分析->模擬請求->代碼整合。由于一會兒kimol君還得去搬磚,今天就不詳細展開了。

1. 搜索論文

通過論文的URL、PMID、DOI號或者論文標題等搜索到對應的論文,并通過bs4庫找出PDF原文的鏈接地址,代碼如下:

def search_article(artName): ’’’ 搜索論文 --------------- 輸入:論文名 --------------- 輸出:搜索結果(如果沒有返回'',否則返回PDF鏈接) ’’’ url = ’https://www.sci-hub.ren/’ headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0’, ’Accept’:’text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8’, ’Accept-Language’:’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Accept-Encoding’:’gzip, deflate, br’, ’Content-Type’:’application/x-www-form-urlencoded’, ’Content-Length’:’123’, ’Origin’:’https://www.sci-hub.ren’, ’Connection’:’keep-alive’, ’Upgrade-Insecure-Requests’:’1’} data = {’sci-hub-plugin-check’:’’, ’request’:artName} res = requests.post(url, headers=headers, data=data) html = res.text soup = BeautifulSoup(html, ’html.parser’) iframe = soup.find(id=’pdf’) if iframe == None: # 未找到相應文章 return ’’ else: downUrl = iframe[’src’] if ’http’ not in downUrl: downUrl = ’https:’+downUrl return downUrl2. 下載論文

得到了論文的鏈接地址之后,只需要通過requests發送一個請求,即可將其下載:

def download_article(downUrl): ’’’ 根據論文鏈接下載文章 ---------------------- 輸入:論文鏈接 ---------------------- 輸出:PDF文件二進制 ’’’ headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0’, ’Accept’:’text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8’, ’Accept-Language’:’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Accept-Encoding’:’gzip, deflate, br’, ’Connection’:’keep-alive’, ’Upgrade-Insecure-Requests’:’1’} res = requests.get(downUrl, headers=headers) return res.content二、完整代碼

將上述兩個函數整合之后,我的完整代碼如下:

# -*- coding: utf-8 -*-'''Created on Tue Jan 5 16:32:22 2021@author: kimol_love'''import osimport timeimport requestsfrom bs4 import BeautifulSoup def search_article(artName): ’’’ 搜索論文 --------------- 輸入:論文名 --------------- 輸出:搜索結果(如果沒有返回'',否則返回PDF鏈接) ’’’ url = ’https://www.sci-hub.ren/’ headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0’, ’Accept’:’text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8’, ’Accept-Language’:’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Accept-Encoding’:’gzip, deflate, br’, ’Content-Type’:’application/x-www-form-urlencoded’, ’Content-Length’:’123’, ’Origin’:’https://www.sci-hub.ren’, ’Connection’:’keep-alive’, ’Upgrade-Insecure-Requests’:’1’} data = {’sci-hub-plugin-check’:’’, ’request’:artName} res = requests.post(url, headers=headers, data=data) html = res.text soup = BeautifulSoup(html, ’html.parser’) iframe = soup.find(id=’pdf’) if iframe == None: # 未找到相應文章 return ’’ else: downUrl = iframe[’src’] if ’http’ not in downUrl: downUrl = ’https:’+downUrl return downUrl def download_article(downUrl): ’’’ 根據論文鏈接下載文章 ---------------------- 輸入:論文鏈接 ---------------------- 輸出:PDF文件二進制 ’’’ headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0’, ’Accept’:’text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8’, ’Accept-Language’:’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Accept-Encoding’:’gzip, deflate, br’, ’Connection’:’keep-alive’, ’Upgrade-Insecure-Requests’:’1’} res = requests.get(downUrl, headers=headers) return res.content def welcome(): ’’’ 歡迎界面 ’’’ os.system(’cls’) title = ’’’ _____ _____ _____ _ _ _ _ ____ / ____|/ ____|_ _| | | | | | | | _ | (___ | | | |______| |__| | | | | |_) | ___ | | | |______| __ | | | | _ < ____) | |____ _| |_ | | | | |__| | |_) | |_____/ _____|_____| |_| |_|____/|____/ ’’’ print(title) if __name__ == ’__main__’: while True: welcome() request = input(’請輸入URL、PMID、DOI或者論文標題:’) print(’搜索中...’) downUrl = search_article(request) if downUrl == ’’: print(’未找到相關論文,請重新搜索!’) else: print(’論文鏈接:%s’%downUrl) print(’下載中...’) pdf = download_article(downUrl) with open(’%s.pdf’%request, ’wb’) as f: f.write(pdf) print(’---下載完成---’) time.sleep(0.8)

不出所料,代碼一跑,我便輕松完成了師姐交給我的任務,不香嘛?

到此這篇關于Python實現一個論文下載器的過程的文章就介紹到這了,更多相關python論文下載器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一二三区精品| 日产午夜精品一线二线三线| 亚洲精品大片| 999在线观看精品免费不卡网站| 日韩av有码| 91av亚洲| 今天的高清视频免费播放成人| 国产精品久久久久久久免费观看| 另类综合日韩欧美亚洲| 欧美极品中文字幕| 大香伊人久久精品一区二区| 久久精品97| 精品国产aⅴ| 青青青免费在线视频| 国产麻豆久久| 亚洲专区在线| 国产精品一区二区精品| 日韩欧美一区二区三区在线视频| 97精品中文字幕| 91精品啪在线观看国产18| 中文无码日韩欧| 视频一区中文字幕精品| 国产调教精品| 午夜亚洲福利在线老司机| 91精品一区二区三区综合| 国产suv精品一区二区四区视频| 亚洲精品在线国产| 日韩在线观看中文字幕| 视频一区欧美精品| 久久久久99| 成人片免费看| 美国三级日本三级久久99| 国产精品国产三级在线观看| 午夜免费一区| 国产成人精选| 久久激情综合网| 亚洲在线国产日韩欧美| 久久精品九色| 亚州av日韩av| 欧美日韩在线观看首页| 日本强好片久久久久久aaa| 日韩电影免费网址| 国产亚洲欧美日韩在线观看一区二区| 黑人精品一区| 欧美精品福利| 综合国产视频| 蜜臀av免费一区二区三区| 综合国产精品| 国产日韩专区| 欧美女激情福利| 亚洲天堂资源| 久久精品亚洲一区二区| 日韩福利视频导航| 国产综合精品| 激情亚洲影院在线观看| 久久字幕精品一区| 日韩av一二三| 中文字幕日韩高清在线| 一区二区三区国产在线| 精品一区二区三区的国产在线观看 | 国产精品va视频| 国产日韩1区| 91视频久久| 91精品国产自产在线观看永久∴| 欧美精品高清| 亚洲少妇自拍| 日韩精品久久理论片| 国产三级精品三级在线观看国产| 久久精品超碰| 综合日韩av| 99国产精品| 69堂精品视频在线播放| 日韩深夜视频| 狠狠色综合网| 亚洲在线久久| 精品国产亚洲一区二区三区大结局| 精品国产乱码久久久久久樱花 | 日韩一区二区三区精品| 久久av影视| 2023国产精品久久久精品双| 日韩精品亚洲专区| 久久久人人人| 国产欧美自拍| 日韩专区欧美专区| 欧美激情另类| 六月婷婷一区| 欧美男人天堂| 麻豆精品蜜桃| 久久av影视| 综合激情在线| 999国产精品| 国产福利资源一区| 免费观看在线综合色| 久久久影院免费| 国产一区二区三区网| 亚洲精品影视| 欧美精品羞羞答答| 91视频精品| 欧美日韩在线二区| 91久久国产| 视频在线观看国产精品| 日韩精品一区二区三区中文在线 | 日韩欧美高清一区二区三区| 亚洲高清成人| 电影91久久久| 另类综合日韩欧美亚洲| 日韩有码av| 亚洲香蕉久久| 欧美亚洲综合视频| 日本不卡在线视频| 久久精选视频| 99久久久久国产精品| 国产综合精品一区| 91精品蜜臀一区二区三区在线| 婷婷激情一区| 99久久视频| 亚洲一区黄色| 日韩欧美中文字幕电影| 中文字幕日韩高清在线| 亚洲精品日韩久久| 日韩不卡一区二区三区| 日韩精品成人| 超碰超碰人人人人精品| 欧美成人精品三级网站| 激情欧美日韩一区| 卡一卡二国产精品| 精品国产第一福利网站| 伊人久久视频| 丝袜美腿亚洲一区二区图片| 中文字幕日本一区二区| 国产麻豆精品久久| 波多野结衣久久精品| 石原莉奈在线亚洲二区| 国产精品成人一区二区网站软件| 久久精品资源| 国精品一区二区| 日韩成人av影视| 97精品国产福利一区二区三区| 久久麻豆精品| 国产日韩欧美一区| 精品久久久久久久| 国产一区白浆| 久久这里只有精品一区二区| 日韩不卡在线| 日韩高清不卡在线| 日韩网站中文字幕| 日本亚洲三级在线| 免费看av不卡| 日韩国产高清在线| 91精品推荐| 久久wwww| 综合色一区二区| 日韩毛片视频| 国产欧美日本| 97精品一区| 精品中国亚洲| 亚洲不卡视频| 国产一区二区中文| 高清一区二区| 国产亚洲第一伦理第一区| 久久久水蜜桃av免费网站| 日本不卡视频一二三区| 午夜在线精品偷拍| 99精品综合| 动漫av一区| 国产伦精品一区二区三区在线播放| 国产精品嫩草99av在线| bbw在线视频| 日韩国产欧美一区二区| 国内精品伊人| 日产欧产美韩系列久久99| 激情久久中文字幕| 日本在线精品| 免费污视频在线一区| 国产精品久久| 国产精品视频一区视频二区| 日韩不卡一二三区| 国产日韩一区二区三区在线播放| 亚洲一区二区免费在线观看| 国产精品日本欧美一区二区三区| 日韩精品水蜜桃| 亚洲日本网址| 日韩一区电影| 国产99精品| 1024精品一区二区三区| 精品视频网站| 精品国产不卡一区二区| 久久精品国产亚洲一区二区三区| 久久97视频| 欧美肉体xxxx裸体137大胆| 欧美性感美女一区二区| 日韩午夜在线| 亚洲精品在线二区| 国产精品久久亚洲不卡| 精品视频久久| 999久久久亚洲| 蜜臀久久99精品久久久久宅男 | 久久精品国产www456c0m| 国产视频久久| 国产伦一区二区三区|