Fast HTML5 CSS selector.
Project description
A fast HTML5 parser and CSS selectors using Modest engine.
Installation
From PyPI using pip:
pip install selectolax
Development version from github:
git clone --recursive https://github.com/rushter/selectolax
cd selectolax
pip install -r requirements_dev.txt
python setup.py install
How to compile selectolax while developing:
make clean
make dev
Examples
from selectolax.parser import HTMLParser
html = "<div><p id=p1><p id=p2><p id=p3><a>link</a><p id=p4><p id=p5>text<p id=p6></div>"
selector = "div > :nth-child(2n+1):not(:has(a))"
for node in HTMLParser(html).css(selector):
print(node.attributes, node.text(), node.tag)
print(node.parent.tag)
print(node.html)
Simple Benchmark
Average of 10 experiments to parse and retrieve URLs from 800 Google SERP pages.
Package |
Time |
Memory (peak) |
---|---|---|
selectolax |
2.38 sec. |
768.11 MB |
lxml |
18.67 sec. |
769.21 MB |
Links
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
selectolax-0.2.0.tar.gz
(121.4 kB
view hashes)
Built Distributions
selectolax-0.2.0-cp37-cp37m-win32.whl
(509.2 kB
view hashes)
selectolax-0.2.0-cp36-cp36m-win32.whl
(509.2 kB
view hashes)
selectolax-0.2.0-cp35-cp35m-win32.whl
(507.2 kB
view hashes)
Close
Hashes for selectolax-0.2.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e7aa57cf9836559a606f827cdb63597a41416ad1a988491df2d10511d149094 |
|
MD5 | 0613e2f7fe3b6588599a725df46c2d8e |
|
BLAKE2b-256 | 4f54e9bec964646781dbd96353785bacc3603bf6f4949b2526ab707e9e7b1e51 |
Close
Hashes for selectolax-0.2.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc263ef951abdf81313d1574b9b0da47c6f2a94b9f282631be0b882ae53d0578 |
|
MD5 | 62067de777769030c8c61a5908178eba |
|
BLAKE2b-256 | 41c731d645a4ddbff207d90c5c8655387a489b316bf66a4cd4f33e5317265ec1 |
Close
Hashes for selectolax-0.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47ca23e2406bc6ec200cd76701fadd20a57d18e54ea160b43e46a108b9ad0258 |
|
MD5 | 142d0ecf02b83519c95fdc94df99e872 |
|
BLAKE2b-256 | e42ebf5b64d5695932237342649428b7c8e1f57104fd024e688c953c0c4c2e86 |
Close
Hashes for selectolax-0.2.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a61bf8279d258dee0135bfd68382d64e03c085c6e9574dac76173af7507033c0 |
|
MD5 | c5fd84398cd4f95ef63412e65d8b04b0 |
|
BLAKE2b-256 | 9625467c60fc21188c4c3788b60274e91fbb26143cbe4469204c51eff7d1b54f |
Close
Hashes for selectolax-0.2.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7702a6e63146c1faaf16cf98c8d632b22411f5baf39a9bcbc40c299ba78ed925 |
|
MD5 | 7e8c4ae7bc5270bf3894d0f0732c0a89 |
|
BLAKE2b-256 | 526961a2d136ee8dbb52344d9ea3f3e86c1cf041402289f83f9353b817bf8c67 |
Close
Hashes for selectolax-0.2.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29c4cbc8064ba07a8224d04dcc465a7cc32363322c5f858c8862aeb283c93b34 |
|
MD5 | 59567230b8978a672df799bda04208ae |
|
BLAKE2b-256 | f3363609d74ce8e541e51f14a4f88e3d9d2aa4801567262acbbea4c090b52cf5 |
Close
Hashes for selectolax-0.2.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 236233f930d536ea0cde3565363bf13dfae2c10fb172db848f4e10a0d5b60a9f |
|
MD5 | 7cd0c2446bfbecf415e03dda077f2044 |
|
BLAKE2b-256 | f8e0208eb7bd3fff58b9c9c169e56237edc9e03baefe980894acd4effdb08d27 |
Close
Hashes for selectolax-0.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1747b2e20d78ae8e77035f2193048515399cb40de156aaf37e83cbbe0984d1c7 |
|
MD5 | 607b1e233fedd6a809bfc37e83e08931 |
|
BLAKE2b-256 | ec6c6a68d663821861789380b41351bbd053ea6f3b07e3ab96b223b2150f9520 |
Close
Hashes for selectolax-0.2.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5f259af3925b0adaeca06cd05c58a5838a46d14d790f6d0e25db41be532a04b |
|
MD5 | 2fba3919d9c96dfa8ffeb98b73e585ba |
|
BLAKE2b-256 | e048f8f58392b664ce26ef60a2da881edb624d986a219e629157696c2bee1c9c |
Close
Hashes for selectolax-0.2.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03e82e722e2f9a9724166383dbbb8318130840230b12ffa6bf16385f65794e72 |
|
MD5 | 43bb26807ab4a527225f358afa890241 |
|
BLAKE2b-256 | f56e1cbd6da9e245c25762463ac42b184c94b3668d5e3846c94cdf71ec7b05d5 |
Close
Hashes for selectolax-0.2.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab4a83415aea80a2d4af7ce4ec66909fd3a28ee14f9149e1a43bd47b9a36f6ee |
|
MD5 | 557303d31f3a153e00ffe5d80fcd27c2 |
|
BLAKE2b-256 | 31ef960b723deccca54a901d825a982fb7312a7a470ee1e77d48153a713d52a9 |
Close
Hashes for selectolax-0.2.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0d76f1c560326de7d15164453edde08c61edc83c923e7e9a94d9a82befaf51f |
|
MD5 | b358be2b906154d74718c9efe6e28d68 |
|
BLAKE2b-256 | 8f7234fadc25a9344b419d883116f88d1838a070249150192b29306147bbd08e |
Close
Hashes for selectolax-0.2.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e833b445ee2e15ceb924fb2f7033e4c9ea7d5bf70a46ded6ea13b8babbcbd0f6 |
|
MD5 | 42fb0a16f510be3ba41a6f787d08a253 |
|
BLAKE2b-256 | b1005136bcb3cb5a40775d89335720c92d78230f468354e28953bf2f04fcdf2a |
Close
Hashes for selectolax-0.2.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19603fa3064fc6731a5b64f434bef9189e3cbbbd03f65ead1bb0b1abf0320a32 |
|
MD5 | 347e99e6af19027724e4b5b8f961d42e |
|
BLAKE2b-256 | f0183b2d18e24152137935822fcaaf9a9102b7924c2ad936b256b8c26265b316 |
Close
Hashes for selectolax-0.2.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b7b0137626743e52955819c1085fc927da4db668482509f7f06108086ae7b2b |
|
MD5 | ed0ec50121ff6c27054f976738bccd5d |
|
BLAKE2b-256 | 338c2aa7e3953b6ae6da0d7a4e21c964dc010e49de7762eca25afc4ddeebbf84 |