Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Parsel is a library to extract data from HTML and XML using XPath and CSS selectors

Project Description

Parsel is a library to extract data from HTML and XML using XPath and CSS selectors

Features

  • Extract text using CSS or XPath selectors
  • Regular expression helper methods

Example:

>>> from parsel import Selector
>>> sel = Selector(text=u"""<html>
        <body>
            <h1>Hello, Parsel!</h1>
            <ul>
                <li><a href="http://example.com">Link 1</a></li>
                <li><a href="http://scrapy.org">Link 2</a></li>
            </ul
        </body>
        </html>""")
>>>
>>> sel.css('h1::text').extract_first()
u'Hello, Parsel!'
>>>
>>> sel.css('h1::text').re('\w+')
[u'Hello', u'Parsel']
>>>
>>> for e in sel.css('ul > li'):
        print(e.xpath('.//a/@href').extract_first())
http://example.com
http://scrapy.org

History

1.2.0 (2017-05-17)

  • Add SelectorList.get and SelectorList.getall methods as aliases for SelectorList.extract_first and SelectorList.extract respectively
  • Add default value parameter to SelectorList.re_first method
  • Add Selector.re_first method
  • Bug fix: detect None result from lxml parsing and fallback with an empty document
  • Rearrange XML/HTML examples in the selectors usage docs
  • Travis CI:
    • Test against Python 3.6
    • Test against PyPy using “Portable PyPy for Linux” distribution

1.1.0 (2016-11-22)

  • Change default HTML parser to lxml.html.HTMLParser, which makes easier to use some HTML specific features
  • Add css2xpath function to translate CSS to XPath
  • Add support for ad-hoc namespaces declarations
  • Add support for XPath variables
  • Documentation improvements and updates

1.0.3 (2016-07-29)

  • Add BSD-3-Clause license file
  • Re-enable PyPy tests
  • Integrate py.test runs with setuptools (needed for Debian packaging)
  • Changelog is now called NEWS

1.0.2 (2016-04-26)

  • Fix bug in exception handling causing original traceback to be lost
  • Added docstrings and other doc fixes

1.0.1 (2015-08-24)

  • Updated PyPI classifiers
  • Added docstrings for csstranslator module and other doc fixes

1.0.0 (2015-08-22)

  • Documentation fixes

0.9.6 (2015-08-14)

  • Updated documentation
  • Extended test coverage

0.9.5 (2015-08-11)

  • Support for extending SelectorList

0.9.4 (2015-08-10)

  • Try workaround for travis-ci/dpl#253

0.9.3 (2015-08-07)

  • Add base_url argument

0.9.2 (2015-08-07)

  • Rename module unified -> selector and promoted root attribute
  • Add create_root_node function

0.9.1 (2015-08-04)

  • Setup Sphinx build and docs structure
  • Build universal wheels
  • Rename some leftovers from package extraction

0.9.0 (2015-07-30)

  • First release on PyPI.
Release History

Release History

This version
History Node

1.2.0

History Node

1.1.0

History Node

1.0.3

History Node

1.0.2

History Node

1.0.1

History Node

1.0.0

History Node

0.9.6

History Node

0.9.5

History Node

0.9.4

History Node

0.9.3

History Node

0.9.2

History Node

0.9.1

History Node

0.9.0

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
parsel-1.2.0-py2.py3-none-any.whl (11.3 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel May 17, 2017
parsel-1.2.0.tar.gz (33.9 kB) Copy SHA256 Checksum SHA256 Source May 17, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting