python批量下载scihub文献
时间: 2023-10-05 13:12:23 浏览: 71
您可以使用Sci-Hub的API来批量下载文献。首先需要安装使用Python的requests和pyperclip库,然后可以使用以下代码进行下载:
``` python
import requests
import pyperclip
# 放入一个列表中,包含多个文献的DOI
dois = ['doi1', 'doi2', 'doi3']
for doi in dois:
url = f'http://sci-hub.tw/{doi}'
response = requests.get(url)
# 获取下载链接
pdf_url = response.url
# 拷贝到剪贴板
pyperclip.copy(pdf_url)
# 打开PDF
os.system('open /Applications/Preview.app')
```
在代码中,你需要将`dois`列表改成包含需要下载的文献的DOI列表。代码通过使用Sci-Hub网站链接来获取每个文献的PDF下载链接,并将链接拷贝到剪贴板。然后,代码会使用操作系统的默认PDF查看器打开PDF。
需要注意的是,使用 Sci-Hub 下载付费文献是违法的,使用风险需自己承担。
相关问题
scihub批量下载论文 python 代码
您好,我可以回答这个问题。scihub批量下载论文的Python代码可以在GitHub上找到,您可以搜索“scihub-python”或“scihub-downloader”来获取相关代码。希望能对您有所帮助。
python批量下载文献
Python可以使用requests库和BeautifulSoup库来批量下载SciHub文献。首先需要获取文献的DOI号码,然后使用requests库向SciHub发送请求,获取文献的下载链接。最后使用requests库下载文献即可。
以下是一个简单的Python代码示例:
```python
import requests
from bs4 import BeautifulSoup
# 设置SciHub的网址
base_url = 'https://sci-hub.se/'
# 读取包含DOI号码的文件
with open('doi_list.txt', 'r') as f:
doi_list = f.readlines()
# 遍历DOI号码列表
for doi in doi_list:
# 构造请求SciHub的URL
url = base_url + doi.strip()
# 发送请求
response = requests.get(url)
# 解析HTML页面
soup = BeautifulSoup(response.text, 'html.parser')
# 获取文献的下载链接
download_link = soup.find('iframe')['src']
# 下载文献
response = requests.get(download_link)
# 保存文献到本地
with open(doi.strip() + '.pdf', 'wb') as f:
f.write(response.content)
```
需要注意的是,SciHub的网址可能会变化,需要根据实际情况进行修改。此外,需要安装requests库和BeautifulSoup库。