Parallel HTML Scraper
Helps you to web scrape html file in parallel without async / await syntax.
Feature
This project helps you to web scrape html file in parallel without async / await syntax.
Installation
pip install parallelhtmlscraper
Usage
Minimum example:
from bs4 import BeautifulSoup
from parallelhtmlscraper.html_analyzer import HtmlAnalyzer
from parallelhtmlscraper.parallel_html_scraper import ParallelHtmlScraper
class AnalyzerExample(HtmlAnalyzer):
async def execute(self, soup: BeautifulSoup) -> str:
return soup.find('title').text
host_google = 'https://www.google.com'
path_and_content = [
'', # Google Search
'/imghp?hl=EN', # Google Images
'/shopping?hl=en', # Google Shopping
'/save', # Collection
'https://www.google.com/maps?hl=en', # Google Maps
'https://www.google.com/drive/apps.html', # Google drive
'https://www.google.com/mail/help/intl/en/about.html?vm=r', # GMail
]
list_response = ParallelHtmlScraper.execute(host_google, path_and_content, AnalyzerExample())
print(list_response)
$ pipenv run python test.py
['\n Gmail - Email from Google\n ', 'Google Images', ' Google Maps ', 'Using Google Drive - New Features, Benefits & Advantages of Google Cloud Storage', 'Google Shopping', 'Google', 'Collections']
API
ParallelMediaDownloader.execute
class ParallelHtmlScraper:
"""API of parallel HTML scraping."""
@staticmethod
def execute(
base_url: str,
list_url: Iterable[str],
analyzer: HtmlAnalyzer[_T],
*,
limit: int = 5
interval: int = 1
) -> List[_T]:
base_url: str
Common part of request URL. This will be help to download URLs got from HTML.
list_url: Iterable[str]
List of URL. Method will download them in parallel.
Absolute URL having same base URL as base_url also can be specified.
analyzer: HtmlAnalyzer[_T]
The instance extends HtmlAnalyzer to analyze HTML by using BeautifulSoup.
Following example will be help to understand its roll:
class AnalyzerExample(HtmlAnalyzer):
async def execute(self, soup: BeautifulSoup) -> str:
return soup.find('title').text
limit: int = 5
Limit number of parallel processes.
interval: int = 1
Interval between each request(second).
Metadata
Release files for parallelhtmlscraper 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| parallelhtmlscraper-0.1.0.tar.gz | 10.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| parallelhtmlscraper-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.1 kB
Release files / parallelhtmlscraper-0.1.0.tar.gz
| Download URL | parallelhtmlscraper-0.1.0.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07c2bb595aadf50cbcee93f2f0deba3d699ef8a8426a4fb75c7c4993248dccb1
|
|
BLAKE2b-256 checksum How to use checksums |
4206e4f1d381d474177aae2cf685ae964362d2ca61ab16cdbf3aca291fa5159d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Release files / parallelhtmlscraper-0.1.0-py3-none-any.whl
| Download URL | parallelhtmlscraper-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ca1b7e4ffd04422e2665ba48e164ba6aa993d3e1ea965ff5efb4e6a475cf516c
|
|
BLAKE2b-256 checksum How to use checksums |
9f61706e4e80a7722d72177dbb88f424ced326d7e70e68919957d04451be4564
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|