Scraping Tripadvisor problème avec Web Scraper

Bonjour à tous !

Je commence tout juste dans le monde du Growthhacking, et je découvre les joies du scraping.

Je cherche à scrapper des adresses mail + nom d’établissement de CHR / restauration sur des zones géographique définis via TripAdvisor.

J’ai mis en place l’outil webscraper sur un pc indépendant qui tourne que pour ça, cependant dans mon selector graph il doit y avoir un problème, car je ne parviens pas à aller sur la page suivant pour effectuer mon acquisition.

Tout se passe super bien sur la première page, donc les 30 premiers restaurant, et par la suite web scraper s’éteint et arrête.
J’en déduis ainsi qu’il n’arrive pas à passer la page suivant malgré que j’ai essayé différentes configurations…

Si certains arrivent à éclairer ma lanterne à ce niveau, ca serait absolument super !!

Voici mon sitemap sur la ville de Bergerac par exemple :

{"_id":« bergerac »,« startUrl »:[« https://www.tripadvisor.fr/Restaurants-g17759543-Bergerac_Dordogne_Nouvelle_Aquitaine.html"],« selectors »:[{« id »:« restaurantunaun »,« parentSelectors »:["_root",« pagesuivante »],« type »:« SelectorLink »,« selector »:"div.dzomp:nth-of-type(1) a »,« multiple »:true,« delay »:0},{« id »:« mail »,« parentSelectors »:[« restaurantunaun »],« type »:« SelectorLink »,« selector »:« div.bKBJS:nth-of-type(2) a »,« multiple »:false,« delay »:0},{« id »:« pagesuivante »,« parentSelectors »:["_root"],« type »:« SelectorLink »,« selector »:« a.nav »,« multiple »:true,« delay »:0}]}

Et voici le graph qui en découle

Capture

Pour l’exemple il n’y a que le mail qui sort, mais je prends aussi le nom avec

Ps : si quelqu’un sait comment extraire le numéro de téléphone avec, ça serait absolument splendide !!

Merci beaucoup !!

Sélectionne le second enfant de la div parent.
À chaque fois, c’est le btn suivant

.pageLinks:nth-child(2)

edit : en fait il n’y a pas que ça qui foire.
ton graph aussi me parait mauvais

Cadeau :
{"_id":« tripadvisor »,« startUrl »:[« https://www.tripadvisor.fr/Restaurants-g17759543-Bergerac_Dordogne_Nouvelle_Aquitaine.html"],« selectors »:[{« id »:"btn next »,« paginationType »:« auto »,« parentSelectors »:["_root",« btn next »],« selector »:« a.nav »,« type »:« SelectorPagination »},{« delay »:0,« id »:« url restaurant »,« multiple »:true,« parentSelectors »:["_root",« btn next »],« selector »:« div.dzomp:nth-of-type(1) a »,« type »:« SelectorLink »},{« delay »:0,« id »:« telephone »,« multiple »:false,« parentSelectors »:[« url restaurant »],« regex »:"",« selector »:« a span span.brMTW »,« type »:« SelectorText »},{« delay »:0,« id »:« email »,« multiple »:false,« parentSelectors »:[« url restaurant »],« selector »:« div.bKBJS:nth-of-type(2) a »,« type »:« SelectorLink »},{« delay »:0,« id »:« Nom »,« multiple »:false,« parentSelectors »:[« url restaurant »],« regex »:"",« selector »:« h1.fHibz »,« type »:« SelectorText »}]}

image

Merci beaucoup pour cette réponse et pour ce cadeau ! :slight_smile:
Ca marche vraiment super bien !!!

Merci beaucoup :slight_smile:

Bonjour,

J’ai essayé d’utiliser ce sitemap sur d’autres zones géo sur le site, mais webscraper me dit directement « invalid JSON » quand j’importe…

Ex :

Une idée de ce qui peut causer ce soucis ?

Merci beaucoup d’avance

Hello @Knyfe, les quotes " sont mal formatés sur ton screen :slight_smile:

1 « J'aime »

Bonjour @ClementAubry

C’était bien ça le problème :upside_down_face: Merci beaucoup !

Malheureusement, le problème initial de l’OP persiste pour moi. Seulement la 1ère page de scrappée sur la recherche : https://www.tripadvisor.fr/Restaurants-g187147-Paris_Ile_de_France.html :frowning_face:

Hello @Knyfe, peux-tu me re-partager le sitemap ?

En utilisant le format « code » cette fois-ci pour garder les quotes!

{"_id":"tripadvisor2","startUrl":["https://www.tripadvisor.fr/Restaurants-g187147-Paris_Ile_de_France.html"],"selectors":[{"id":"btn 4 next","parentSelectors":["_root","btn next","btn 4 next"],"paginationType":"auto","selector":"a.nav","type":"SelectorPagination"},{"id":"url restaurant","parentSelectors":["_root","btn next"],"type":"SelectorLink","selector":"div.dzomp:nth-of-type(1) a","multiple":true,"delay":0},{"id":"telephone","parentSelectors":["url restaurant"],"type":"SelectorText","selector":"a span span.brMTW","multiple":false,"delay":0,"regex":""},{"id":"email","parentSelectors":["url restaurant"],"type":"SelectorLink","selector":"div.bKBJS:nth-of-type(2) a","multiple":false,"delay":0},{"id":"Nom","parentSelectors":["url restaurant"],"type":"SelectorText","selector":"h1.fHibz","multiple":false,"delay":0,"regex":""}]}

Hop, j’espère avoir utilisé le formatage correct @ClementAubry

Merci pour ton aide en tout cas

Le formatage est bon @Knyfe!

Ton sitemap a un problème, voilà un screenshot du « sitemap graph »
image

Le problème est que ton bouton next ne scrap rien. Il faut que tu rajoutes le selecteur url restaurant en fils :slight_smile: Voilà à quoi ressemble désormais ton sitemap.

image

Tu peux essayer et nous dire si ça marche ? :slight_smile: Pour cela tu dois juste rajouter btn 4 next en parent de ton url restaurant

3 « J'aime »

Hello Clément, sans vouloir vendre la peau de l’ours avant de l’avoir tué, ça tourne depuis ce matin sans interruption et je pense donc bien que ça fonctionne !

Merci beaucoup !

PS : Je suis couvert par Alan, ton aide précieuse me donne un a priori encore meilleur sur cette boite (en plus du nounours mignon sur la carte de tiers-payant)

2 « J'aime »

Avec plaisir, content que ça marche !

Heureux de contribuer à la bonne image de notre boîte, merci pour ton gentil message :slight_smile:

1 « J'aime »

Salut Clément, serait-il possible d’avoir le code corrigé du coup ? je ne sais pas ou mettre le parent selector dans le code de base. Et je voudrais aussi extraire la quantité d’avis du commerce scrappé ?

Bonjour à tous,
Je suis un novice mais je commence déjà à m’amuser avec Web Scraper.
Je cherche à récupérer un ensemble de données sur les restaurants d’une ville, ici, Boulogne sur Mer.
Chaque requête fonctionne individuellement en preview mais lorsque je lance le scraping il mouline normalement mais à la fin, mon export CSV est vide. Pouvez vous m’aider ?
Voici l’export Sitemap :
{« _id »:« tripadvisor »,« startUrl »:[« https://www.tripadvisor.fr/Restaurants-g196632-Boulogne_sur_Mer_Pas_de_Calais_Hauts_de_France.html"],« selectors »:[{« id »:« nom »,« multiple »:true,« parentSelectors »:[« _root »],« selector »:« a.Lwqic »,« type »:« SelectorLink »},{« id »:« note »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« span.ZDEqb »,« type »:« SelectorText »},{« id »:"nb avis »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« a.IcelI »,« type »:« SelectorText »},{« id »:« adresse »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« .kDZhm span.yEWoV »,« type »:« SelectorText »},{« id »:« tel »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« a span span.yEWoV »,« type »:« SelectorText »},{« id »:« prix »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« .BMlpu div:nth-of-type(1) div.SrqKb »,« type »:« SelectorText »},{« id »:« cuisines »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« .BMlpu div:nth-of-type(2) div.SrqKb »,« type »:« SelectorText »},{« id »:« repas »,« multiple »:false,« parentSelectors »:[« nom »],« regex »:«  »,« selector »:« div:nth-of-type(3) div.SrqKb »,« type »:« SelectorText »},{« id »:« lien détails »,« multiple »:false,« parentSelectors »:[« nom »],« selector »:« a.OTyAN »,« type »:« SelectorLink »},{« id »:« détails »,« multiple »:false,« parentSelectors »:[« lien détails »],« regex »:«  »,« selector »:« div:nth-of-type(4) div.SrqKb »,« type »:« SelectorText »}]}

et voici mon graph :

Un grand merci d’avance à la communauté !

Il faut que tu fasses tourner ton nom sur ton root, pour qu’il visite chaque page une page et que cela relance la procèdure de recherche pour chaque page.

Si jamais j’ai des listings de CHR de la france entière :wink:

Merci Motorcycle24
Quand je lance le scrape, il checke quand même toutes les pages sans pagination. Surprenant qu’il ne me donne pas au moins les data des pages qu’il visite.
J’ai intégrer la pagination mais faut il que je remette en fils le détail des data à scraper ?

Ton fichier contient quelles data ? Il est récent ?

Novembre 2022 et j’ai tous les départements

  • de 110.000 avec adresse mail :slight_smile:

Je veux bien :v:

Ah, j’ai l’intention de recommander un bon outil pour scraper Tripadvisor - octoparse
Il propose 6 templates faciles à utiliser et il suffit d’entrer des paramètres.

Le suivant est un tutoriel en anglais pour customize lui-même un scraper
1) « Go To Web Page » - to open the targeted web page

2) Create a pagination loop - to scrape all the results from multiple pages

3) Create a « Loop Item » - to loop click into each item on each list

4) Extract data - to select the data for extraction

5) Customize the data field using RegEx tool - to reformat rating data (Optional)

6) Save and start extraction - to run the task and get data

source : Scrape hotel data from Tripadvisor | Octoparse

Hello Knyfe,

J’ai essayé avec ta correction mais j’ai l’impression qu’il ne fonctionne plus, l’aurais-tu réutilisé récemment sous un autre format ?

Merci d’avance pour ton retour !