We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In some cases it is common to have fallback selectors for certain fields. This way, we end up writing a piece of code like
loader = MyLoader(response=response) loader.add_css('my_field', 'selector1') loader.add_css('my_field', 'selector2') # fallback 1 loader.add_css('my_field', 'selector3') # fallback 2
However, a, maybe, better way would be
loader = MyLoader(response=response) loader.add_css('my_field', [ 'selector1', 'selector2', # fallback 1 'selector3', # fallback 2 ])
The API above would be the equivalent of the first example. However, @cathalgarvey also shared a nice idea to stop in the first matching selector.
loader = MyLoader(response=response) loader.add_css('my_field', [ 'selector1', 'selector2', # fallback 1 'selector3', # fallback 2 ], selectors_as_preferences=True)
Then, if selector1 yields a result, the other ones are not attempted, otherwise we fallback to selector2 and so on.
selector1
selector2
The same API should be applied to loader.add_xpath.
loader.add_xpath
The text was updated successfully, but these errors were encountered:
Hi @ejulio @Gallaecio! I'd like to know your thoughts on scrapy/scrapy#3795 for discussion as it's closely related to this. :)
Sorry, something went wrong.
Then, if selector1 yields a result, the other ones are attempted,...
Then, if selector1 yields a result, the other ones are NOT attempted,...
Successfully merging a pull request may close this issue.
In some cases it is common to have fallback selectors for certain fields.
This way, we end up writing a piece of code like
However, a, maybe, better way would be
The API above would be the equivalent of the first example.
However, @cathalgarvey also shared a nice idea to stop in the first matching selector.
Then, if
selector1
yields a result, the other ones are not attempted, otherwise we fallback toselector2
and so on.The same API should be applied to
loader.add_xpath
.The text was updated successfully, but these errors were encountered: