Web Scraper - Pagination en JavaScript

Bonjour à tous,

Je débute en scraping et j’aurais besoin de votre aide.
J’essaye de récupérer des infos sur une page où la pagination est faite en JavaScript :

https://www.footballdatabase.eu/fr/transferts/-/2020-09-07

J’arrive bien à récupérer les infos sur la première page, puis je pagine sur les autres pages avec un SelectorElementClick, mais ça ne me récupère pas les infos.
J’avais réussi à le faire avec ParseHub, mais la version gratuite est limitée à 200 pages et j’en ai parfois plus.

Voilà le sitemap que j’ai créé :

{"_id":"transfers","startUrl":["https://www.footballdatabase.eu/fr/transferts/-/2020-09-07"],"selectors":[{"id":"tab_joueurs","type":"SelectorElement","parentSelectors":["_root","next_page"],"selector":"#count_0_0 div","multiple":true,"delay":0},{"id":"joueur","type":"SelectorText","parentSelectors":["tab_joueurs"],"selector":".name a","multiple":false,"regex":"","delay":0},{"id":"next_page","type":"SelectorElementClick","parentSelectors":["_root","tab_joueurs"],"selector":"#count_0_0 div","multiple":true,"delay":2000,"clickElementSelector":"#pages_1 a.active","clickType":"clickOnce","discardInitialElements":"do-not-discard","clickElementUniquenessType":"uniqueText"}]}

Comme je débute, je n’utilise peut-être pas les bons selecteurs, alors toute aide sera la bienvenue.

Merci et A+

Tu peux générer la requête qui retourne la table pour chaque page. C’est plus fiable car pas d’interaction manuelle avec la web

Exemple:
Tape le code suivant sur un terminal:

curl 'https://www.footballdatabase.eu/ajax_transfers_show.php' --data-raw 'date=2020-09-07&pid=1&page=1&filter=full'

J’ai créé ImportFromWeb qui est une fonction de scraping pour Google Sheets.
En utilisant la méthode précédente, je t’ai généré une liste complète de 5 pages

Voici la demo:

2 « J'aime »

Merci pour ta réponse, c’est pas mal en effet. Par contre il manque des lignes dans la google sheet alors que la commande dans le terminal ramène bien tout.
Tu as une idée du problème ? (par exemple la première ligne du tableau n’y est pas : celle du joueur James Rodriguez).

En tout cas c’est une façon de faire interessante, merci, je vais étudier ça.

Et si quelqu’un a une autre idée avec Web Scraper, je suis preneur.

Exact!!
C’est mon XPath!

J’ai remplacé le modèle avec
//div[contains(@class,"line")]/span[1]

C’est mieux. Mais j’ai que les 3 premières pages qui s’affichent :thinking:

Quand je change le numero de page dans google sheet, les pages 6 et 7 s’affichent bien.
Le problème est sur les pages 4 et 5. Une idée du problème ?