Release notes
itemloaders 1.5.0 (2026-09-29)
Backward-incompatible change: when an Item Loader instantiates the item itself, from
default_item_class, the field defaults of that item are no longer treated as collected data, so they no longer go through processors and no longer get combined with the values you add. They still reach the loaded item for fields that get no data.To get the old behavior, pass the item yourself, e.g.
ItemLoader(item=MyItem()). (#117)Backward-incompatible change: sets and iterators other than generators, such as the result of
map(), are now collected value by value, like lists, tuples and generators already were, instead of as a single value.To collect one of them as a single value, wrap it in a list, e.g.
loader.add_value("tags", [{"a", "b"}]). (#120)Added a stats parameter to
ItemLoaderto count how often each parsing rule matches, to find rules that are no longer needed. See Tracking parsing rule usage. (#121)Nested loaders now inherit the context of their parent loader, with keyword arguments passed to
nested_xpath()andnested_css()taking precedence. (#34, #124)Fixed
functools.partial()processors missing theirloader_contextwhen the value of a positionally-bound argument matched the name of an unbound parameter, e.g.partial(func, "loader_context"). (#125, #126)
itemloaders 1.4.0 (2026-01-29)
itemloaders 1.3.2 (2024-09-30)
itemloaders 1.3.1 (2024-06-03)
Fixed an error when using nested loaders with empty matches that was introduced in 1.3.0 (#88)
itemloaders 1.3.0 (2024-05-30)
itemloaders 1.2.0 (2024-04-18)
itemloaders 1.1.0 (2023-04-21)
itemloaders 1.0.6 (2022-08-29)
Fixes a regression introduced in 1.0.5 that would cause the
reparameter ofItemLoader.add_xpath()and similar methods to be passed to lxml, which would trigger an exception when the value ofrewas a compiled pattern and not a string (#56)
itemloaders 1.0.5 (2022-08-25)
Allow additional args to be passed when calling
ItemLoader.add_xpath()(#48)Fixed missing space in an exception message (#47)
Updated company name in author and copyright sections (#42)
Added official support for Python 3.9 and improved PyPy compatibility (#44)
Added official support for Python 3.10 (#53)
itemloaders 1.0.4 (2020-11-12)
When adding a
scrapy.Itemobject as a value into anItemLoaderobject, that item is now added as is, instead of becoming alistof keys from itsscrapy.Item.fields(#28, #29)Increased test coverage (#27)
itemloaders 1.0.3 (2020-09-09)
Calls to
ItemLoader.get_output_value()no longer affect the output ofItemLoader.load_item()(#21, #22)Fixed some test warnings (#24)
itemloaders 1.0.2 (2020-08-05)
itemloaders 1.0.1 (2020-07-02)
Extended item type support to all item types supported by itemadapter (#13)
Input and output processors defined in item field metadata are now taken into account (#13)
Lowered some minimum dependency versions (#10):
parsel: 1.5.2 → 1.5.0w3lib: 1.21.0 → 1.17.0
Improved the README file (#9)
Improved continuous integration (e62d95b)
itemloaders 1.0.0 (2020-05-18)
Initial release, based on a part of the Scrapy code base.