Skip to content

Releases: scrapy/parsel

v1.10.0

16 Dec 11:56
Compare
Choose a tag to compare
  • Removed support for Python 3.8.
  • Added support for Python 3.13.
  • Changed the default encoding name from "utf8" to "utf-8" everywhere. The former name is not supported in certain environments.
  • CI fixes and improvements.

v1.9.1

16 Dec 11:56
Compare
Choose a tag to compare
  • Removed the dependency on pytest-runner.
  • Removed the obsolete Makefile.

v1.9.0

16 Dec 11:55
Compare
Choose a tag to compare
  • Now requires cssselect >= 1.2.0 (this minimum version was required since 1.8.0 but that wasn't properly recorded)
  • Removed support for Python 3.7
  • Added support for Python 3.12 and PyPy 3.10
  • Fixed an exception when calling __str__ or __repr__ on some JSON selectors
  • Code formatted with black
  • CI fixes and improvements

1.8.1

18 Apr 13:48
Compare
Choose a tag to compare
  • Remove a Sphinx reference from NEWS to fix the PyPI description
  • Add a twine check CI check to detect such problems

1.8.0

18 Apr 12:27
Compare
Choose a tag to compare
  • Add support for JMESPath: you can now create a selector for a JSON document and call Selector.jmespath().
  • Selectors can now be constructed from bytes (using the body and encoding arguments) instead of str (using the text argument).
  • Typing improvements
  • The pkg_resources module (which was absent from the requirements) is no longer used
  • Documentation build fixes

1.7.0

01 Nov 14:06
Compare
Choose a tag to compare
  • Add PEP 561-style type information
  • Support for Python 2.7, 3.5 and 3.6 is removed
  • Support for Python 3.9-3.11 is added
  • Very large documents (with deep nesting or long tag content) can now be parsed, and Selector now takes a new argument huge_tree to disable this
  • Support for new features of cssselect 1.2.0 is added
  • The Selector.remove() and SelectorList.remove() methods are deprecated and replaced with the new Selector.drop() and SelectorList.drop() methods which don’t delete text after the dropped elements when used in the HTML mode.

1.6.0

07 May 21:28
Compare
Choose a tag to compare
  • Python 3.4 is no longer supported
  • New Selector.remove() and SelectorList.remove() methods to remove selected elements from the parsed document tree
  • Improvements to error reporting, test coverage and documentation, and code cleanup

v1.3.1

28 Dec 19:26
Compare
Choose a tag to compare
  • has-class XPath extension function;
  • parsel.xpathfuncs.set_xpathfunc is a simplified way to register
    XPath extensions;
  • Selector.remove_namespaces now removes namespace declarations;
  • Python 3.3 support is dropped;
  • make htmlview command for easier Parsel docs development.
  • CI: PyPy installation is fixed; parsel now runs tests for PyPy3 as well.

1.3.1 was released shortly after 1.3.0 to fix pypi upload issue.

v1.2.0

17 May 20:35
Compare
Choose a tag to compare
  • Add get() and getall() methods as aliases for extract_first and 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

v1.1.0

22 Nov 13:29
Compare
Choose a tag to compare
  • 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