Update docs/intro/tutorial.rst

Co-authored-by: Adrián Chaves <adrian@chaves.io>
This commit is contained in:
Ryan Whelchel 2021-10-05 10:22:57 -04:00 committed by GitHub
parent b9647b85d3
commit 764cf0178b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 3 deletions

View File

@ -277,9 +277,20 @@ As an alternative, you could've written:
>>> response.css('title::text')[0].get()
'Quotes to Scrape'
Directly accessing an index on a :class:`~scrapy.selector.SelectorList`
instance could potentially run into an ``IndexError``. It is recommended to use
``.get()`` directly instead as it avoids such index errors.
Accessing an index on a :class:`~scrapy.selector.SelectorList` instance will
raise an :exc:`IndexError` exception if there are no results::
>>> response.css('noelement')[0].get()
Traceback (most recent call last):
File "<console>", line 1, in <module>
...
IndexError: list index out of range
You might want to use ``.get()`` directly on the
:class:`~scrapy.selector.SelectorList` instance instead, which returns ``None``
if there are no results::
>>> response.css("noelement").get()
There's a lesson here: for most scraping code, you want it to be resilient to
errors due to things not being found on a page, so that even if some parts fail