File size: 3,724 Bytes
568edc9 693ebd3 a29b545 8ee20af 0df7d95 568edc9 6f38a9c 568edc9 0c5f148 568edc9 bfc9733 568edc9 bfc9733 568edc9 bfc9733 6f38a9c 568edc9 94900cd 7c5afe3 7bd4753 7c5afe3 a85d2c8 373dc9b 5769f93 7bd4753 7c5afe3 7bd4753 2b29433 e554724 b36ad05 138d6ee ebf18ac a85d2c8 b36ad05 a85d2c8 b36ad05 568edc9 693ebd3 568edc9 6f38a9c 568edc9 847727e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | [build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "scrapling"
# Static version instead of a dynamic version so we can get better layer caching while building docker, check the docker file to understand
version = "0.4.2"
description = "Scrapling is an undetectable, powerful, flexible, high-performance Python library that makes Web Scraping easy and effortless as it should be!"
readme = {file = "README.md", content-type = "text/markdown"}
license = {file = "LICENSE"}
authors = [
{name = "Karim Shoair", email = "karim.shoair@pm.me"}
]
maintainers = [
{name = "Karim Shoair", email = "karim.shoair@pm.me"}
]
keywords = [
"web-scraping",
"scraping",
"automation",
"browser-automation",
"data-extraction",
"html-parsing",
"undetectable",
"playwright",
"selenium-alternative",
"web-crawler",
"browser",
"crawling",
"headless",
"scraper",
"chrome",
]
requires-python = ">=3.10"
classifiers = [
"Operating System :: OS Independent",
"Development Status :: 4 - Beta",
# "Development Status :: 5 - Production/Stable",
# "Development Status :: 6 - Mature",
# "Development Status :: 7 - Inactive",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Browsers",
"Topic :: Text Processing :: Markup",
"Topic :: Text Processing :: Markup :: HTML",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Application Frameworks",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Typing :: Typed",
]
dependencies = [
"lxml>=6.0.2",
"cssselect>=1.4.0",
"orjson>=3.11.7",
"tld>=0.13.2",
"w3lib>=2.4.0",
"typing_extensions",
]
[project.optional-dependencies]
fetchers = [
"click>=8.3.0",
"curl_cffi>=0.14.0",
"playwright==1.58.0",
"patchright==1.58.2",
"browserforge>=1.2.4",
"apify-fingerprint-datapoints>=0.11.0",
"msgspec>=0.20.0",
"anyio>=4.12.1"
]
ai = [
"mcp>=1.26.0",
"markdownify>=1.2.0",
"scrapling[fetchers]",
]
shell = [
"IPython>=8.37", # The last version that supports Python 3.10
"markdownify>=1.2.0",
"scrapling[fetchers]",
]
all = [
"scrapling[ai,shell]",
]
[project.urls]
Homepage = "https://github.com/D4Vinci/Scrapling"
Changelog = "https://github.com/D4Vinci/Scrapling/releases"
Documentation = "https://scrapling.readthedocs.io/en/latest/"
Repository = "https://github.com/D4Vinci/Scrapling"
"Bug Tracker" = "https://github.com/D4Vinci/Scrapling/issues"
"Discord" = "https://discord.gg/EMgGbDceNQ"
"Release Notes" = "https://github.com/D4Vinci/Scrapling/releases"
[project.scripts]
scrapling = "scrapling.cli:main"
[tool.setuptools]
zip-safe = false
include-package-data = true
[tool.setuptools.packages.find]
where = ["."]
include = ["scrapling*"]
[tool.mypy]
python_version = "3.10"
warn_unused_configs = true
ignore_missing_imports = true
check_untyped_defs = true
[tool.pyright]
pythonVersion = "3.10"
typeCheckingMode = "basic"
include = ["scrapling"]
ignore = ["tests", "benchmarks.py"] |