summaryrefslogtreecommitdiff
path: root/python-pywebcopy.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 11:19:10 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 11:19:10 +0000
commit901313b922cf797bfb43e59ec4054d0a67af0bfb (patch)
treeada11cd304564e868c92ddce0c66d9a795b0f0a2 /python-pywebcopy.spec
parent293723c9703428b58e816f1f8d046587d16266e0 (diff)
automatic import of python-pywebcopyopeneuler20.03
Diffstat (limited to 'python-pywebcopy.spec')
-rw-r--r--python-pywebcopy.spec638
1 files changed, 638 insertions, 0 deletions
diff --git a/python-pywebcopy.spec b/python-pywebcopy.spec
new file mode 100644
index 0000000..490da8a
--- /dev/null
+++ b/python-pywebcopy.spec
@@ -0,0 +1,638 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pywebcopy
+Version: 7.0.2
+Release: 1
+Summary: Python library to clone/archive pages or sites from the Internet.
+License: Apache Software License
+URL: https://github.com/rajatomar788/pywebcopy/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/08/96/ec6722cf01e1def3fcde38df6c81e41c5517f5730620b107d93b2d05f541/pywebcopy-7.0.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-setuptools
+Requires: python3-six
+Requires: python3-requests
+Requires: python3-lxml
+Requires: python3-cachecontrol
+
+%description
+
+```
+ ____ _ __ __ ______ _____
+ / __ \__ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
+ / /_/ / / / / | /| / / _ \/ __ \/ / / __ \/ __ \/ / / / / /
+ / ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
+/_/ \__, / |__/|__/\___/_.___/\____/\____/ .___/\__, / /_/
+ /____/ /_/ /____/
+```
+
+`Created By : Raja Tomar`
+`License : Apache License 2.0`
+`Email: rajatomar788@gmail.com`
+[![Downloads](https://pepy.tech/badge/pywebcopy)](https://pepy.tech/project/pywebcopy)
+
+
+PyWebCopy is a free tool for copying full or partial websites locally
+onto your hard-disk for offline viewing.
+
+PyWebCopy will scan the specified website and download its content onto your hard-disk.
+Links to resources such as style-sheets, images, and other pages in the website
+will automatically be remapped to match the local path.
+Using its extensive configuration you can define which parts of a website will be copied and how.
+
+## What can PyWebCopy do?
+
+PyWebCopy will examine the HTML mark-up of a website and attempt to discover all linked resources
+such as other pages, images, videos, file downloads - anything and everything.
+It will download all of theses resources, and continue to search for more.
+In this manner, WebCopy can "crawl" an entire website and download everything it sees
+in an effort to create a reasonable facsimile of the source website.
+
+## What can PyWebCopy not do?
+
+PyWebCopy does not include a virtual DOM or any form of JavaScript parsing.
+If a website makes heavy use of JavaScript to operate, it is unlikely PyWebCopy will be able
+to make a true copy if it is unable to discover all of the website due to
+JavaScript being used to dynamically generate links.
+
+PyWebCopy does not download the raw source code of a web site,
+it can only download what the HTTP server returns.
+While it will do its best to create an offline copy of a website,
+advanced data driven websites may not work as expected once they have been copied.
+
+## Installation
+
+`pywebcopy` is available on PyPi and is easily installable using `pip`
+
+```shell
+
+$ pip install pywebcopy
+
+```
+
+You are ready to go. Read the tutorials below to get started.
+
+## First steps
+
+You should always check if the latest pywebcopy is installed successfully.
+
+```pydocstring
+>>> import pywebcopy
+>>> pywebcopy.__version___
+7.x.x
+```
+
+Your version may be different, now you can continue the tutorial.
+
+## Basic Usages
+
+To save any single page, just type in python console
+
+```python
+
+from pywebcopy import save_webpage
+save_webpage(
+ url="https://httpbin.org/",
+ project_folder="E://savedpages//",
+ project_name="my_site",
+ bypass_robots=True,
+ debug=True,
+ open_in_browser=True,
+ delay=None,
+ threaded=False,
+)
+
+```
+
+To save full website (This could overload the target server, So, be careful)
+
+```Python
+
+from pywebcopy import save_website
+save_website(
+url="https://httpbin.org/",
+project_folder="E://savedpages//",
+project_name="my_site",
+bypass_robots=True,
+debug=True,
+open_in_browser=True,
+delay=None,
+threaded=False,
+)
+
+```
+
+### Running Tests
+Running tests is simple and doesn't require any external library.
+Just run this command from root directory of pywebcopy package.
+
+
+```shell
+$ python -m pywebcopy --tests
+```
+
+
+
+### Command Line Interface
+`pywebcopy` have a very easy to use command-line interface which
+can help you do task without having to worrying about the inner
+long way.
+
+- #### Getting list of commands
+ ```shell
+ $ python -m pywebcopy --help
+ ```
+- #### Using CLI
+ ```
+ Usage: pywebcopy [-p|--page|-s|--site|-t|--tests] [--url=URL [,--location=LOCATION [,--name=NAME [,--pop [,--bypass_robots [,--quite [,--delay=DELAY]]]]]]]
+
+ Python library to clone/archive pages or sites from the Internet.
+
+ Options:
+ --version show program's version number and exit
+ -h, --help show this help message and exit
+ --url=URL url of the entry point to be retrieved.
+ --location=LOCATION Location where files are to be stored.
+ -n NAME, --name=NAME Project name of this run.
+ -d DELAY, --delay=DELAY
+ Delay between consecutive requests to the server.
+ --bypass_robots Bypass the robots.txt restrictions.
+ --threaded Use threads for faster downloading.
+ -q, --quite Suppress the logging from this library.
+ --pop open the html page in default browser window after
+ finishing the task.
+
+ CLI Actions List:
+ Primary actions available through cli.
+
+ -p, --page Quickly saves a single page.
+ -s, --site Saves the complete site.
+ -t, --tests Runs tests for this library.
+
+
+ ```
+- #### Running tests
+ ```shell
+ $ python -m pywebcopy run_tests
+ ```
+
+
+### Authentication and Cookies
+Most of the time authentication is needed to access a certain page.
+Its real easy to authenticate with `pywebcopy` because it uses an
+`requests.Session` object for base http activity which can be accessed
+through `WebPage.session` attribute. And as you know there
+are ton of tutorials on setting up authentication with `requests.Session`.
+
+Here is an example to fill forms
+
+```python
+from pywebcopy.configs import get_config
+
+config = get_config('http://httpbin.org/')
+wp = config.create_page()
+wp.get(config['project_url'])
+form = wp.get_forms()[0]
+form.inputs['email'].value = 'bar' # etc
+form.inputs['password'].value = 'baz' # etc
+wp.submit_form(form)
+wp.get_links()
+
+```
+
+
+You can read more in the github repositories `docs` folder.
+
+
+
+%package -n python3-pywebcopy
+Summary: Python library to clone/archive pages or sites from the Internet.
+Provides: python-pywebcopy
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pywebcopy
+
+```
+ ____ _ __ __ ______ _____
+ / __ \__ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
+ / /_/ / / / / | /| / / _ \/ __ \/ / / __ \/ __ \/ / / / / /
+ / ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
+/_/ \__, / |__/|__/\___/_.___/\____/\____/ .___/\__, / /_/
+ /____/ /_/ /____/
+```
+
+`Created By : Raja Tomar`
+`License : Apache License 2.0`
+`Email: rajatomar788@gmail.com`
+[![Downloads](https://pepy.tech/badge/pywebcopy)](https://pepy.tech/project/pywebcopy)
+
+
+PyWebCopy is a free tool for copying full or partial websites locally
+onto your hard-disk for offline viewing.
+
+PyWebCopy will scan the specified website and download its content onto your hard-disk.
+Links to resources such as style-sheets, images, and other pages in the website
+will automatically be remapped to match the local path.
+Using its extensive configuration you can define which parts of a website will be copied and how.
+
+## What can PyWebCopy do?
+
+PyWebCopy will examine the HTML mark-up of a website and attempt to discover all linked resources
+such as other pages, images, videos, file downloads - anything and everything.
+It will download all of theses resources, and continue to search for more.
+In this manner, WebCopy can "crawl" an entire website and download everything it sees
+in an effort to create a reasonable facsimile of the source website.
+
+## What can PyWebCopy not do?
+
+PyWebCopy does not include a virtual DOM or any form of JavaScript parsing.
+If a website makes heavy use of JavaScript to operate, it is unlikely PyWebCopy will be able
+to make a true copy if it is unable to discover all of the website due to
+JavaScript being used to dynamically generate links.
+
+PyWebCopy does not download the raw source code of a web site,
+it can only download what the HTTP server returns.
+While it will do its best to create an offline copy of a website,
+advanced data driven websites may not work as expected once they have been copied.
+
+## Installation
+
+`pywebcopy` is available on PyPi and is easily installable using `pip`
+
+```shell
+
+$ pip install pywebcopy
+
+```
+
+You are ready to go. Read the tutorials below to get started.
+
+## First steps
+
+You should always check if the latest pywebcopy is installed successfully.
+
+```pydocstring
+>>> import pywebcopy
+>>> pywebcopy.__version___
+7.x.x
+```
+
+Your version may be different, now you can continue the tutorial.
+
+## Basic Usages
+
+To save any single page, just type in python console
+
+```python
+
+from pywebcopy import save_webpage
+save_webpage(
+ url="https://httpbin.org/",
+ project_folder="E://savedpages//",
+ project_name="my_site",
+ bypass_robots=True,
+ debug=True,
+ open_in_browser=True,
+ delay=None,
+ threaded=False,
+)
+
+```
+
+To save full website (This could overload the target server, So, be careful)
+
+```Python
+
+from pywebcopy import save_website
+save_website(
+url="https://httpbin.org/",
+project_folder="E://savedpages//",
+project_name="my_site",
+bypass_robots=True,
+debug=True,
+open_in_browser=True,
+delay=None,
+threaded=False,
+)
+
+```
+
+### Running Tests
+Running tests is simple and doesn't require any external library.
+Just run this command from root directory of pywebcopy package.
+
+
+```shell
+$ python -m pywebcopy --tests
+```
+
+
+
+### Command Line Interface
+`pywebcopy` have a very easy to use command-line interface which
+can help you do task without having to worrying about the inner
+long way.
+
+- #### Getting list of commands
+ ```shell
+ $ python -m pywebcopy --help
+ ```
+- #### Using CLI
+ ```
+ Usage: pywebcopy [-p|--page|-s|--site|-t|--tests] [--url=URL [,--location=LOCATION [,--name=NAME [,--pop [,--bypass_robots [,--quite [,--delay=DELAY]]]]]]]
+
+ Python library to clone/archive pages or sites from the Internet.
+
+ Options:
+ --version show program's version number and exit
+ -h, --help show this help message and exit
+ --url=URL url of the entry point to be retrieved.
+ --location=LOCATION Location where files are to be stored.
+ -n NAME, --name=NAME Project name of this run.
+ -d DELAY, --delay=DELAY
+ Delay between consecutive requests to the server.
+ --bypass_robots Bypass the robots.txt restrictions.
+ --threaded Use threads for faster downloading.
+ -q, --quite Suppress the logging from this library.
+ --pop open the html page in default browser window after
+ finishing the task.
+
+ CLI Actions List:
+ Primary actions available through cli.
+
+ -p, --page Quickly saves a single page.
+ -s, --site Saves the complete site.
+ -t, --tests Runs tests for this library.
+
+
+ ```
+- #### Running tests
+ ```shell
+ $ python -m pywebcopy run_tests
+ ```
+
+
+### Authentication and Cookies
+Most of the time authentication is needed to access a certain page.
+Its real easy to authenticate with `pywebcopy` because it uses an
+`requests.Session` object for base http activity which can be accessed
+through `WebPage.session` attribute. And as you know there
+are ton of tutorials on setting up authentication with `requests.Session`.
+
+Here is an example to fill forms
+
+```python
+from pywebcopy.configs import get_config
+
+config = get_config('http://httpbin.org/')
+wp = config.create_page()
+wp.get(config['project_url'])
+form = wp.get_forms()[0]
+form.inputs['email'].value = 'bar' # etc
+form.inputs['password'].value = 'baz' # etc
+wp.submit_form(form)
+wp.get_links()
+
+```
+
+
+You can read more in the github repositories `docs` folder.
+
+
+
+%package help
+Summary: Development documents and examples for pywebcopy
+Provides: python3-pywebcopy-doc
+%description help
+
+```
+ ____ _ __ __ ______ _____
+ / __ \__ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
+ / /_/ / / / / | /| / / _ \/ __ \/ / / __ \/ __ \/ / / / / /
+ / ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
+/_/ \__, / |__/|__/\___/_.___/\____/\____/ .___/\__, / /_/
+ /____/ /_/ /____/
+```
+
+`Created By : Raja Tomar`
+`License : Apache License 2.0`
+`Email: rajatomar788@gmail.com`
+[![Downloads](https://pepy.tech/badge/pywebcopy)](https://pepy.tech/project/pywebcopy)
+
+
+PyWebCopy is a free tool for copying full or partial websites locally
+onto your hard-disk for offline viewing.
+
+PyWebCopy will scan the specified website and download its content onto your hard-disk.
+Links to resources such as style-sheets, images, and other pages in the website
+will automatically be remapped to match the local path.
+Using its extensive configuration you can define which parts of a website will be copied and how.
+
+## What can PyWebCopy do?
+
+PyWebCopy will examine the HTML mark-up of a website and attempt to discover all linked resources
+such as other pages, images, videos, file downloads - anything and everything.
+It will download all of theses resources, and continue to search for more.
+In this manner, WebCopy can "crawl" an entire website and download everything it sees
+in an effort to create a reasonable facsimile of the source website.
+
+## What can PyWebCopy not do?
+
+PyWebCopy does not include a virtual DOM or any form of JavaScript parsing.
+If a website makes heavy use of JavaScript to operate, it is unlikely PyWebCopy will be able
+to make a true copy if it is unable to discover all of the website due to
+JavaScript being used to dynamically generate links.
+
+PyWebCopy does not download the raw source code of a web site,
+it can only download what the HTTP server returns.
+While it will do its best to create an offline copy of a website,
+advanced data driven websites may not work as expected once they have been copied.
+
+## Installation
+
+`pywebcopy` is available on PyPi and is easily installable using `pip`
+
+```shell
+
+$ pip install pywebcopy
+
+```
+
+You are ready to go. Read the tutorials below to get started.
+
+## First steps
+
+You should always check if the latest pywebcopy is installed successfully.
+
+```pydocstring
+>>> import pywebcopy
+>>> pywebcopy.__version___
+7.x.x
+```
+
+Your version may be different, now you can continue the tutorial.
+
+## Basic Usages
+
+To save any single page, just type in python console
+
+```python
+
+from pywebcopy import save_webpage
+save_webpage(
+ url="https://httpbin.org/",
+ project_folder="E://savedpages//",
+ project_name="my_site",
+ bypass_robots=True,
+ debug=True,
+ open_in_browser=True,
+ delay=None,
+ threaded=False,
+)
+
+```
+
+To save full website (This could overload the target server, So, be careful)
+
+```Python
+
+from pywebcopy import save_website
+save_website(
+url="https://httpbin.org/",
+project_folder="E://savedpages//",
+project_name="my_site",
+bypass_robots=True,
+debug=True,
+open_in_browser=True,
+delay=None,
+threaded=False,
+)
+
+```
+
+### Running Tests
+Running tests is simple and doesn't require any external library.
+Just run this command from root directory of pywebcopy package.
+
+
+```shell
+$ python -m pywebcopy --tests
+```
+
+
+
+### Command Line Interface
+`pywebcopy` have a very easy to use command-line interface which
+can help you do task without having to worrying about the inner
+long way.
+
+- #### Getting list of commands
+ ```shell
+ $ python -m pywebcopy --help
+ ```
+- #### Using CLI
+ ```
+ Usage: pywebcopy [-p|--page|-s|--site|-t|--tests] [--url=URL [,--location=LOCATION [,--name=NAME [,--pop [,--bypass_robots [,--quite [,--delay=DELAY]]]]]]]
+
+ Python library to clone/archive pages or sites from the Internet.
+
+ Options:
+ --version show program's version number and exit
+ -h, --help show this help message and exit
+ --url=URL url of the entry point to be retrieved.
+ --location=LOCATION Location where files are to be stored.
+ -n NAME, --name=NAME Project name of this run.
+ -d DELAY, --delay=DELAY
+ Delay between consecutive requests to the server.
+ --bypass_robots Bypass the robots.txt restrictions.
+ --threaded Use threads for faster downloading.
+ -q, --quite Suppress the logging from this library.
+ --pop open the html page in default browser window after
+ finishing the task.
+
+ CLI Actions List:
+ Primary actions available through cli.
+
+ -p, --page Quickly saves a single page.
+ -s, --site Saves the complete site.
+ -t, --tests Runs tests for this library.
+
+
+ ```
+- #### Running tests
+ ```shell
+ $ python -m pywebcopy run_tests
+ ```
+
+
+### Authentication and Cookies
+Most of the time authentication is needed to access a certain page.
+Its real easy to authenticate with `pywebcopy` because it uses an
+`requests.Session` object for base http activity which can be accessed
+through `WebPage.session` attribute. And as you know there
+are ton of tutorials on setting up authentication with `requests.Session`.
+
+Here is an example to fill forms
+
+```python
+from pywebcopy.configs import get_config
+
+config = get_config('http://httpbin.org/')
+wp = config.create_page()
+wp.get(config['project_url'])
+form = wp.get_forms()[0]
+form.inputs['email'].value = 'bar' # etc
+form.inputs['password'].value = 'baz' # etc
+wp.submit_form(form)
+wp.get_links()
+
+```
+
+
+You can read more in the github repositories `docs` folder.
+
+
+
+%prep
+%autosetup -n pywebcopy-7.0.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pywebcopy -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 7.0.2-1
+- Package Spec generated