entrepreneur-interet-general / CIS-front

Site public du carrefour des innovations sociales
http://carrefourdesinnovationssociales.fr/
MIT License
7 stars 5 forks source link

Site UNCASS : les adresses et descriptions ne sont pas toujours scrapées #166

Open Eliselalique opened 5 years ago

Eliselalique commented 5 years ago

unccas Projets scrapés sur le site Unccas : adresse non scrapée, possible de le faire? et le lien vers le site sourceur renvoie à la page du moteur de recherche, pas directement à la fiche projet

D'autre part, certaines descriptions ne sont pas scrappées alors qu'elles existent sur le site du sourceur. Exemple ce projet sur CIS /

capture d ecran 2019-01-15 14 47 28

Sur le site du sourceur :

capture d ecran 2019-01-15 14 47 54

-> Il faudrait scrapper la partie "DESCRIPTION"

Eliselalique commented 5 years ago

-> Xpath des scrapers à régler

DavidBruant commented 5 years ago
DavidBruant commented 5 years ago

En essayant de reproduire la spider en local, j'ai l'erreur suivante :

::: ERROR scrapy.core.scraper 190124 23:00:07 ::: scraper:158 -in- handle_spider_error() :::        Spider error processing <GET https://www.unccas.org/-banque-d-experiences-> (referer: None)
    Traceback (most recent call last):
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/scrapy/utils/defer.py", line 102, in iter_errback
        yield next(it)
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/scrapy/spidermiddlewares/offsite.py", line 30, in process_spider_output
        for x in result:
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/scrapy/spidermiddlewares/referer.py", line 339, in <genexpr>
        return (_set_referer(r) for r in result or ())
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in <genexpr>
        return (r for r in result or () if _filter(r))
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in <genexpr>
        return (r for r in result or () if _filter(r))
      File "/home/david/projects/OpenScraper/openscraper/scraper/masterspider.py", line 714, in parse
        self.driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=options_selenium)
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
        self.service.start()
      File "/home/david/projects/OpenScraper/venv/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 83, in start
        os.path.basename(self.path), self.start_error_message)
    WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
JulienParis commented 5 years ago

j'arrive pas à reproduire l'erreur de David en local... :/ chez moi ça roule

JulienParis commented 5 years ago

un souci que j'ai remarqué est que lorsqu'on met un xpath du type .//section[@class="spip-wysiwyg"]/div[@class="headline"]/p//text() pour du html qui ressemble à ça :

capture d ecran 2019-02-10 a 19 40 28

... l'ordre de ce qui est scrappé ressemble toujours à ça (toujours le même ordre/désordre) :

capture d ecran 2019-02-10 a 20 05 01

Mon hypothèse est que le xpath tel qu'interprété par Selenium est traduit en listes consécutives ce qui est entre des balises <strong>, et créé un ordre ... comment dire... étrange ? en fonction de ces balises "children"... pas de solution pour l'instant... (l'ordre de ce qui est scrappé avec ce xpath est 'normal' qd j'utilise le plugin xpath de firefox...)

Dans l'attente de mieux je peux laisser comme xpath pour le résumé celui qu'on avait jusque là : .//div/p[@class="mt10"]/text() pour récupérer le texte de résumé depuis l'espace liste (pas depuis la page détaillée)