scrapy/scrapy — pull request #556 by darkrho (2014-01-23 14:57:56+00:00)
Title: Make `ItemLoader` ignore `None` values from processors.

The `ItemLoader` class makes a great job ignoring `None` values, but when the value comes from an output processor is not handle in the same way.

Consider this item loader:

```python
# myloader.py
from scrapy.contrib.loader import ItemLoader
from scrapy.contrib.loader.processor import Compose, TakeFirst

def to_number(value):
try:
return float(value)
except ValueError:
pass

class MyLoader(ItemLoader):
price_out = Compose(TakeFirst(), to_number)
```

Then this common case:

```python
In [1]: %run myloader.py

In [2]: il = MyLoader(item={})

In [3]: il.add_value('price', 'foo')

In [4]: il.load_item()
Out[4]: {'price': None}
```

In many projects I've seen the need to remove manually the `None` values because the client doesn't want to see those fields if it's a null value.

This pull request address that issue, making the `ItemLoader` not set a field in the item if it is a `None` value.