[Python] scrapy : AttributeError: 'list' object has no attribute 'xpath'

Discussão em 'Python' iniciado por Stack, Fevereiro 10, 2025.

  1. Stack

    Stack Membro Participativo

    I'am beginner on scrapy. I am trying to iterate ads but I get this error.

    I don't know what is wrong in my code.

    Here is what I did:

    class ScrapAiaSpider(scrapy.Spider):
    name = 'scrap_aia'
    allowed_domains = ['aia-immobilier.fr']
    start_urls = ['http://aia-immobilier.fr/fr/ventes']

    def parse(self, response):
    ads = response.xpath('//li[@class="property initial"]').getall(),
    for ad in ads:
    yield {
    'type': ad.xpath('./div[@class="titles"]/h2/text()').get(),
    'price': ad.xpath('./li[@class="price"]/div/text()').get(),
    'room': ad.xpath('./li[@class="room"]/div/text()').get(),
    'area': ad.xpath('./li[@class="area"]/div/text()').get()
    }


    When I run this code, I get an error which explain that list does not have Xpath attribute. Thus I don't understand how I can iterate and get some items for each ad in the list.

    Traceback (most recent call last):
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\utils\defer.py", line 132, in iter_errback
    yield next(it)
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\utils\python.py", line 354, in __next__
    return next(self.data)
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\utils\python.py", line 354, in __next__
    return next(self.data)
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\core\spidermw.py", line 66, in _evaluate_iterable
    for r in iterable:
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\spidermiddlewares\offsite.py", line 29, in process_spider_output
    for x in result:
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\core\spidermw.py", line 66, in _evaluate_iterable
    for r in iterable:
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\spidermiddlewares\referer.py", line 342, in <genexpr>
    return (_set_referer(r) for r in result or ())
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\core\spidermw.py", line 66, in _evaluate_iterable
    for r in iterable:
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\spidermiddlewares\urllength.py", line 40, in <genexpr>
    return (r for r in result or () if _filter(r))
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\core\spidermw.py", line 66, in _evaluate_iterable
    for r in iterable:
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\spidermiddlewares\depth.py", line 58, in <genexpr>
    return (r for r in result or () if _filter(r))
    File "C:\Users\kgonc\anaconda3\envs\scraping\lib\site-packages\scrapy\core\spidermw.py", line 66, in _evaluate_iterable
    for r in iterable:
    File "C:\Users\kgonc\Desktop\Projets\scrap_immo\aia-immobilier.fr\scrap_immo\spiders\scrap_aia.py", line 18, in parse
    'type': ad.xpath('./div[@class="titles"]/h2/text()').get(),
    AttributeError: 'list' object has no attribute 'xpath'

    Continue reading...

Compartilhe esta Página