|
|
5 yıl önce | |
|---|---|---|
| .. | ||
| back-ends | 5 yıl önce | |
| Dockerfile | 5 yıl önce | |
| README.MD | 5 yıl önce | |
| args.js | 5 yıl önce | |
| single-file | 5 yıl önce | |
| single-file-cli-api.js | 5 yıl önce | |
| single-file.bat | 7 yıl önce | |
SingleFile can be launched from the command line by running it into a (headless) browser. It runs through Node.js as a standalone script injected into the web page instead of being embedded into a WebExtension. To connect to the browser, it can use Puppeteer or Selenium WebDriver. Alternatively, it can also emulate a browser with JavaScript disabled by using jsdom.
docker pull capsulecode/singlefile
docker tag capsulecode/singlefile singlefile
git clone --depth 1 --recursive https://github.com/gildas-lormeau/SingleFile.git
cd SingleFile/cli
docker build --no-cache -t singlefile .
docker run singlefile "https://www.wikipedia.org"
docker run singlefile "https://www.wikipedia.org" > wikipedia.html
docker run -v %cd%:/out singlefile "https://www.wikipedia.org" wikipedia.html (Windows)
docker run -v $(pwd):/out singlefile "https://www.wikipedia.org" wikipedia.html (Linux/UNIX)
Make sure Chrome or Firefox is installed and the executable can be found through the PATH environment variable. Otherwise you will need to set the --browser-executable-path option to help SingleFile locating it. As an alternative to Chrome and Firefox, you can use jsdom by setting the --back-end option to jsdom.
Install Node.js
There are 3 ways to download the code of SingleFile, choose the one you prefer (npm is installed with Node.js):
npm
npm install -g "gildas-lormeau/SingleFile#master"
unzip master.zip .
cd SingleFile-master
npm install
cd cli
gitgit clone --depth 1 --recursive https://github.com/gildas-lormeau/SingleFile.git
cd SingleFile
npm install
cd cli
Make single-file executable (Linux/Unix/BSD etc.) if SingleFile is not installed globally.
chmod +x single-file
geckodriver for Firefox). Make sure it can be found through the PATH environment variable or the cli folder. Otherwise you will need to set the --web-driver-executable-path option to help WebDriver locating the executable.single-file <url> [output] [options ...]
single-file --help
Examples
single-file https://www.wikipedia.org --dump-content
wikipedia.html in the current foldersingle-file https://www.wikipedia.org wikipedia.html
wikipedia.html in the current folder with Firefox instead of Chromesingle-file https://www.wikipedia.org wikipedia.html --back-end=webdriver-gecko
list-urls.txt in the current foldersingle-file --urls-file=list-urls.txt
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rules="^(.*)\\?.*$ $1"
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=false --crawl-external-links-max-depth=1 --crawl-rewrite-rules="^.*wikipedia.*$"
If the error message UnhandledPromiseRejectionWarning: Error: Browser is not downloaded. Run "npm install" or "yarn install" at ChromeLauncher.launch is displayed, it probably means that single-file was not able to find the executable of the browser. Using the option --browser-executable-path to pass to single-file the complete path of the executable fixes this issue.
--browser-wait-until to a lower value (e.g. networkidle0 or load instead of networkidle2) fixes this issue.SingleFile is licensed under AGPL. Code derived from third-party projects is licensed under MIT. Please contact me at gildas.lormeau <at> gmail.com if you are interested in licensing the SingleFile code for a commercial service or product.