Fix #3771: Add fallback css and xpath selectors #3772
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3771
So, scrapy already handled
loader.add_css('my_field', ['selector1', 'selector2'])
.Though, I added this behavior to the docs.
I added a new kwarg called
stop_on_first_match
to bothadd_css
andadd_xpath
.This way we can control if the field is a composite of various selectors or if it is a set of fallbacks.
I'm not sure about the name
stop_on_first_match
.processor.Compose
has astop_on_none
argument (https://docs.scrapy.org/en/latest/topics/loaders.html#scrapy.loader.processors.Compose).Maybe we can use another that is similar, or even
stop_on_none
it is checking explicitly forNone
right now.