Open Eliselalique opened 5 years ago
ordre des champs scrappés --> open scraper
Je vois le problème, je vais essayer de travailler dessus
Liens pour un exemple :
http://www.carrefourdesinnovationssociales.fr/project/5bd33d463ba14c58d1e45ea1
https://novimpact.org/blog/acteurs/souse/
...
La phase de "test" du scrapper en local ne ramène aucune fiche projet
En production, le item_xpath
est //ul/li[@class="mk-employee-item"]
Il existe bien des éléments avec cette classe, mais ils ont d'autres classes : <li class="mk-employee-item dlnk-mur-item startup-item">
. Donc le XPath qui attend un match exact (@class=
) ne retourne rien
Je vais tenter un xpath plus générique
Ayé, j'ai réussi à réparer les XPath pour avoir des éléments en local
Je peux reproduire le problème
Le XPath qui va chercher la description est .//span[@class="startup-paragraphe-subtitle" and contains(text(), "Description")]/following-sibling::div[1]//text()
. L'hypothèse que je fais, c'est que le //text()
va chercher les textes soit dans un ordre qui ne nous arrange pas, soit dans un ordre aléatoire
I had a bad feeling about this...
And nodes have an order, the document order: the order in which they appear in the XML/HTML source.
https://doc.scrapy.org/en/xpath-tutorial/topics/xpath-tutorial.html
Cette phrase suggère que le xpath devrait donner l'ordre qu'on attend
J'ai cherché un peu voir si d'autres avaient déjà eu des problèmes d'ordre. Je n'ai trouvé que ça : https://stackoverflow.com/questions/23151356/text-containing-hyperlinks-order-of-elements-in-xpath qui utilise la même bibliothèque de xml/xpath qu'OpenScraper : lxml
Donc il s'agit peut-être d'un bug dans cette bibliothèque
Quelques xpath qui ont marché aujourd'hui:
start urls
: https://novimpact.org/mur-startups/ item_xpath
: //ul/li[contains(concat(' ',normalize-space(@class),' '),' mk-employee-item ')]
follow_xpath
: .//div[contains(concat(' ',normalize-space(@class),' '),' team-info-wrapper ')]/a/@href
Celui-là était trop dur pour mon niveau
Problème relevé sur toutes les fiches projets scrapées par NovImpact.
Sur le site Novimpact
Sur le site CIS
-> L'ordre des blocs n'est pas le même et du coup ça perd de son sens