واجهة برمجة تطبيقات غير رسمية لتنزيل الأوراق من Scihub.
# Download with a DOI and filenmae is the paper's title.
$ scidownl download --doi https://doi.org/10.1145/3375633
# Download with a PMID and a user-defined filepath
$ scidownl download --pmid 31395057 --out ./paper/paper-1.pdf
# Download with a title
$ scidownl download --title " ImageNet Classification with Deep Convolutional Neural Networks " --out ./paper/paper-1.pdf
# Download with a proxy: SCHEME=PROXY_ADDRESS
$ scidownl download --pmid 31395057 --out ./paper/paper-1.pdf --proxy http=socks5://127.0.0.1:7890
يمكن تثبيت Scidownl بسهولة مع PIP.
$ pip3 install -U scidownl
$ git clone https://github.com/Tishacy/SciDownl.git
$ cd Scidownl && python3 setup.py install
$ scidownl -h
Usage: scidownl [OPTIONS] COMMAND [ARGS]...
Command line tool to download pdfs from Scihub.
Options:
-h, --help Show this message and exit.
Commands:
config Get global configs.
domain.list List available SciHub domains in local db.
domain.update Update available SciHub domains and save them to local db.
download Download paper(s) by DOI or PMID.
$ scidownl domain.update --help
Usage: scidownl domain.update [OPTIONS]
Update available SciHub domains and save them to local db.
Options:
-m, --mode TEXT update mode, could be ' crawl ' or ' search ' , default mode is
' crawl ' .
-h, --help Show this message and exit.
هناك وضعان تحديثان يمكنك تحديدهما بخيار: -m
أو --mode
crawl
: [افتراضي] تزحف موقع Scihub Domains الذي تم تحديثه في الوقت الفعلي (ويعرف أيضًا باسم Scihub Domain Source) للحصول على مجالات Scihub المتاحة. تم تكوين عنوان URL لموقع SCIHUB Domain Source في ملف التكوين العالمي في القسم [scihub.domain.updater.crawl]
مع مفتاح scihub_domain_source
. يمكنك استخدام scidownl config --location
لإظهار موقع ملف التكوين العالمي وتحريره.
; Global config file: global.ini
; ...
[scihub.domain.updater.crawl]
scihub_domain_source = http://tool.yovisun.com/scihub
; ...
مثال على استخدام وضع crawl
:
$ scidownl domain.update --mode crawl
[INFO] | 2022/03/07 21:07:50 | Found 6 valid SciHub domains in total: [ ' http://sci-hub.ru ' , ' http://sci-hub.se ' , ' https://sci-hub.ru ' , ' https://sci-hub.st ' , ' http://sci-hub.st ' , ' https://sci-hub.se ' ]
[INFO] | 2022/03/07 21:07:50 | Saved 6 SciHub domains to local db.
search
: قم بإنشاء مجموعات وفقًا لقواعد مجالات Scihub والبحث عن مجالات Scihub المتاحة. هذا سيستغرق وقتًا أطول من وضع crawl
.
مثال على استخدام وضع search
:
$ scidownl domain.update --mode search
[INFO] | 2022/03/07 21:08:44 | # Search valid SciHub domains from 1352 urls
[INFO] | 2022/03/07 21:08:48 | # Found a SciHub domain url: https://sci-hub.ru
[INFO] | 2022/03/07 21:08:48 | # Found a SciHub domain url: https://sci-hub.st
...
[INFO] | 2022/03/07 21:09:04 | Found 6 valid SciHub domains in total: [ ' https://sci-hub.ru ' , ' https://sci-hub.st ' , ...]
[INFO] | 2022/03/07 21:09:04 | Saved 6 SciHub domains to local db.
استخدم Scidownl SQLite كقاعدة بيانات محلية لتخزين جميع مجالات SCIHUB المحدثة محليًا. يمكنك سرد جميع مجالات SCIHUB المحفوظة باستخدام Command domain.list
.
$ scidownl domain.list
+--------------------+----------------+---------------+
| Url | SuccessTimes | FailedTimes |
| --------------------+----------------+--------------- |
| http://sci-hub.ru | 0 | 0 |
| https://sci-hub.ru | 0 | 0 |
| https://sci-hub.st | 0 | 0 |
| http://sci-hub.st | 0 | 0 |
| https://sci-hub.se | 0 | 0 |
| http://sci-hub.se | 0 | 0 |
+--------------------+----------------+---------------+
بالإضافة إلى عمود عنوان URL سهل الفهم ، يتم استخدام عمود SuccessTimes
لتسجيل عدد التنزيلات الورقية الناجحة باستخدام عنوان URL هذا ، ويتم استخدام عمود FailedTimes
لتسجيل عدد التنزيلات الورقية الفاشلة باستخدام عنوان URL. يتم استخدام هذين العمودين لحساب أولوية اختيار مجال SCIHUB عند تنزيل الأوراق.
$ scidownl download --help
Usage: scidownl download [OPTIONS]
Download paper(s) by DOI or PMID.
Options:
-d, --doi TEXT DOI string. Specifying multiple DOIs is supported,
e.g., --doi FIRST_DOI --doi SECOND_DOI ...
-p, --pmid INTEGER PMID numbers. Specifying multiple PMIDs is supported,
e.g., --pmid FIRST_PMID --pmid SECOND_PMID ...
-t, --title TEXT Title string. Specifying multiple titles is
supported, e.g., --title FIRST_TITLE --title
SECOND_TITLE ...
-o, --out TEXT Output directory or file path, which could be an
absolute path or a relative path. Output directory
examples: /absolute/path/to/download/,
./relative/path/to/download/, Output file examples:
/absolute/dir/paper.pdf, ../relative/dir/paper.pdf.
If --out is not specified, paper will be downloaded
to the current directory with the file name of the
paper's title. If multiple DOIs or multiple PMIDs are
provided, the --out option is always considered as
the output directory, rather than the output file
path.
-u, --scihub-url TEXT Scihub domain url. If not specified, automatically
choose one from local saved domains. It's recommended
to leave this option empty.
-h, --help Show this message and exit.
باستخدام الخيار -d
أو --doi
لتنزيل الأوراق باستخدام DOI أو Option -p
أو --pmid
لتنزيل الأوراق باستخدام PMID ، وخيار -t
أو --title
لتنزيل الأوراق مع العناوين. يمكنك تحديد هذه الخيارات لعدة مرات ، وحتى مزجها.
# with a single DOI
$ scidownl download --doi https://doi.org/10.1145/3375633
# with multiple DOIs
$ scidownl download --doi https://doi.org/10.1145/3375633 --doi https://doi.org/10.1145/2785956.2787496
# with a single PMID
$ scidownl download --pmid 31395057
# with multiple PMIDs
$ scidownl download --pmid 31395057 --pmid 24686414
# with a single title
$ scidownl download --title " ImageNet Classification with Deep Convolutional Neural Networks "
# with multiple titles
$ scidownl download --title " ImageNet Classification with Deep Convolutional Neural Networks " --title " Aggregated residual transformations for deep neural networks "
# with a mix of DOIs and PMIDs
$ scidownl download --doi https://doi.org/10.1145/3375633 --pmid 31395057 --pmid 24686414
بشكل افتراضي ، تم تسمية الورقة التي تم تنزيلها بعنوان الورقة. باستخدام الخيار -o
أو --out
, يمكنك تخصيص موقع الإخراج للأوراق التي تم تنزيلها ، يمكن أن يكون WHIH مسارًا مطلقًا أو مسارًا نسبيًا ، ومسارًا أو مسارًا للملف.
إخراج paepr إلى دليل:
$ scidownl download --pmid 31395057 --out /absolute/path/of/a/directory/
# NOTE that the '/' at the end of the directory path is required, otherwise the last segment will be treated as the filename rather than a directory.
$ scidownl download --pmid 31395057 --out ../relative/path/of/a/directory/
# The '/' at the end of the directory path is required too.
إخراج الورقة مع مسار الملف.
$ scidownl download --pmid 31395057 --out /absolute/dir/paper.pdf
$ scidownl download --pmid 31395057 --out ../relative/dir/paper.pdf
$ scidownl download --pmid 31395057 --out relative/dir/paper.pdf
$ scidownl download --pmid 31395057 --out paper # will be downlaoded as ./paper.pdf
لاحظ أنه إذا كان هناك أكثر من ورقة واحدة يتم تنزيلها ، فسيتم دائمًا اعتبار قيمة الخيار --out
دليلًا ، بدلاً من مسار الملف.
$ scidownl download --pmid 31395057 --pmid 24686414 --out paper
# will be downloaded to ./paper/ directory:
# ./paper/<paper-title-1>.pdf
# ./paper/<paper-title-2>.pdf
إذا لم تكن بعض الدلائل في الخيار غير موجودة ، فسيقوم Scidownl بإنشاءها لك؟.
باستخدام الخيار -u
أو --scihub-url
، يمكنك استخدام عنوان URL SCIHUB محدد تريده ، بدلاً من السماح لـ Scidownl تلقائيًا باختيار واحد لك من مجالات Scihub المحلية المحلية. يوصى بالسماح لـ Scidownl باختيار عنوان URL SCIHUB ، لذلك لا تحتاج إلى استخدام هذا الخيار في الاستخدام العادي.
$ scidownl download --pmid 31395057 --scihub-url http://sci-hub.se
يمكنك استخدام وظيفة scihub_download
لتنزيل الأوراق.
from scidownl import scihub_download
paper = "https://doi.org/10.1145/3375633"
paper_type = "doi"
out = "./paper/one_paper.pdf"
proxies = {
'http' : 'socks5://127.0.0.1:7890'
}
scihub_download ( paper , paper_type = paper_type , out = out , proxies = proxies )
يمكن رؤية المزيد من الأمثلة في أمثلة.
حقوق الطبع والنشر (ج) 2022 Tishacy.
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.