diff --git a/src/modules/google.js b/src/modules/google.js index 38ccad2..a1ae66f 100644 --- a/src/modules/google.js +++ b/src/modules/google.js @@ -29,7 +29,7 @@ class GoogleScraper extends Scraper { if (n) { return n.getAttribute(attr); } else { - return null; + return; } }; @@ -111,14 +111,14 @@ class GoogleScraper extends Scraper { // parse right side product information results.right_info.review = _attr(document, '#rhs .cu-container g-review-stars span', 'aria-label'); - let title_el = document.querySelector('#rhs .cu-container g-review-stars'); + let title_el = document.querySelector('#rhs .cu-container .Q7Oxbd'); if (title_el) { - results.right_info.review.title = title_el.parentNode.querySelector('div:first-child').innerText; + results.right_info.title = title_el.innerText; } - let num_reviews_el = document.querySelector('#rhs .cu-container g-review-stars'); + let num_reviews_el = document.querySelector('#rhs .cu-container .PGDKUd'); if (num_reviews_el) { - results.right_info.num_reviews = num_reviews_el.parentNode.querySelector('div:nth-of-type(2)').innerText; + results.right_info.num_reviews = num_reviews_el.innerText; } results.right_info.vendors = []; @@ -127,20 +127,16 @@ class GoogleScraper extends Scraper { document.querySelectorAll('#rhs .cu-container .rhsvw > div > div:nth-child(4) > div > div:nth-child(3) > div').forEach((el) => { results.right_info.vendors.push({ price: _text(el, 'span:nth-of-type(1)'), - merchant_name: _text(el, 'span:nth-child(3) a:nth-child(2)'), + merchant_name: _text(el, '.doUe3s0oL2B__jackpot-merchant a'), merchant_ad_link: _attr(el, 'span:nth-child(3) a:first-child', 'href'), - merchant_link: _attr(el, 'span:nth-child(3) a:nth-child(2)', 'href'), + merchant_link: _attr(el, 'span:nth-child(3) a:nth-child(2)', 'href'), // TODO this is not working anymore source_name: _text(el, 'span:nth-child(4) a'), source_link: _attr(el, 'span:nth-child(4) a', 'href'), - info: _text(el, 'div span'), - shipping: _text(el, 'span:last-child > span'), + info: _text(el, '.SdBHnc.e2CF7c'), + shipping: _text(el, '.JfwJme'), }) }); - if (!results.right_info.title) { - results.right_info = {}; - } - let right_side_info_el = document.getElementById('rhs'); if (right_side_info_el) { diff --git a/test/mocks/google/shopping right product review_page1.html b/test/mocks/google/shopping right product review_page1.html new file mode 100644 index 0000000..bca8e73 --- /dev/null +++ b/test/mocks/google/shopping right product review_page1.html @@ -0,0 +1,220 @@ + + +lacoste 317 - Recherche Google

Liens d'accessibilité

Passer directement au contenu principalAide sur l'accessibilité
Commentaires sur l'accessibilité
Connexion
Google
  • lacoste 317
    Supprimer
  • lacoste 317 1
    Supprimer
  • lacoste carnaby evo 317
    Supprimer
  • lacoste rey lace 317 1
    Supprimer
  • lacoste light 317
    Supprimer
  • lacoste chaymon 317
    Supprimer
  • lacoste europa 317
    Supprimer
  • lacoste lerond 317
    Supprimer
  • lacoste missouri 317
    Supprimer
  • lacoste eyyla 317
    Supprimer
  • Supprimer
  • En savoir plus
    Signaler des prédictions inappropriées

    Modes de recherche

    Tous
    Shopping
    Images
    Maps
    Actualités
    Plus
    VidéosLivresFlightsFinance
    Paramètres
    Paramètres de rechercheLangues (Languages)
    Activer SafeSearch
    Recherche avancéeActivité de rechercheVos données dans la recherche GoogleAide sur la recherche
    Outils
      Toutes les langues
      • Toutes les langues
      • Recherche dans les pages en Français
      Date indifférente
      • Date indifférente
      • Moins d'une heure
      • Moins de 24 heures
      • Moins d'une semaine
      • Moins d'un mois
      • Moins d'un an
      • Dates précises
        Dates précises
        OK
      Tous les résultats
      • Tous les résultats
      • Mot à mot
      Environ 4 160 000 résultats (0,50 secondes) 
      Rappel concernant les règles de confidentialité de Google
      Me le rappeler plus tard
      Lire

      Résultats de recherche

      Images correspondant à lacoste 317

      Filtres de recherche guidée

      ight 317
      ray ban
      lt spirit
      lacoste missouri
      lunettes
      baskets basses
      edel optics
      monture
      chaussure lacoste
      soleil lacoste
      l790s
      polo
      aveclunettesoleil
      chaumont
      missouri 317
      sneakers
      881s
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Résultat de recherche d'images pour "lacoste 317"
      Tout afficher
      Plus d'images pour lacoste 317Problème signaléSignaler des images inappropriéesMerci de vos commentaires et suggestions. Signaler une autre imageVous avez trouvé des images choquantes. Merci de les signaler. AnnulerValider

      Résultats Web


      Lacoste Sport Chaymon 317 chaussures white/navy: Amazon ...

      www.amazon.fr › Lacoste-Chaymon-317-Hommes-Bas...
      www.amazon.fr › Lacoste-Chaymon-317-Hommes-Bas...
      1. En cache
      Lacoste Chaymon 317 Hommes Baskets.
      Note : 5 - ‎1 avis

      Basket Lacoste Avenir 317 2 SPW - Ref ... - Amazon

      www.amazon.fr › Basket-Lacoste-Avenir-317-734SPW...
      www.amazon.fr › Basket-Lacoste-Avenir-317-734SPW...
      1. En cache
      Basket Lacoste Avenir 317 2 SPW. Coloris : Noir. Référence : 734SPW0003024. Ancrée dans la plus pure tradition sportive de la marque, la chaussure Lacoste ...

      Lacoste L 881S 317 - Edel-Optics

      www.edel-optics.fr › L881S-317-de-Lacoste
      www.edel-optics.fr › L881S-317-de-Lacoste
      1. En cache
      Acheter des Lacoste L 881S en ligne à prix très bas ✓ Essayage Virtuel 3D ✓ 4 variantes de couleurs ✓ Déja à partir de ... Lacoste L881S 317 CRYSTAL/KHAKI.

      Lacoste L 2858 317 - Edel-Optics

      www.edel-optics.fr › L2858-317-de-Lacoste
      www.edel-optics.fr › L2858-317-de-Lacoste
      1. En cache
      Acheter des Lacoste L 2858 en ligne à prix très bas ✓ Essayage Virtuel 3D ✓ 5 variantes de couleurs ✓ Déja à partir de 74 ... Lacoste L2858 317 MATTE KHAKI ...
      Commencez à voir les lieux où vous vous êtes rendu
      Turn on Google Account settings to track places you visit.Turn on Location History to track places you visit.Activez l'enregistrement de l'activité sur le Web et les applications pour pouvoir effectuer le suivi des lieux où vous vous rendez.
      AnnulerOK

      Résultats de recherche à proximité

      lacoste 317 : carte
      Note 
      Tout
      4,5 et plus
      4,0 et plus
      3,5 et plus
      3,0 et plus
      2,5 et plus
      2,0 et plus
      Horaires 
      Date indifférente
      Ouvert actuellement
      Ouvert 24 h/24
      Lundi
      Mardi
      Mercredi
      Jeudi
      Vendredi
      Samedi
      Dimanche
      Date indifférente00:0001:0002:0003:0004:0005:0006:0007:0008:0009:0010:0011:0012:0013:0014:0015:0016:0017:0018:0019:0020:0021:0022:0023:00
      Les horaires ou les services proposés peuvent varier
      Lacoste Paris - Ternes
      4,0 (50) · Magasin de vêtements
      36 Avenue des Ternes · 01 40 55 09 91
      Ouvert ⋅ Ferme à 19:00
      Retrait en magasin
      Spartoo
      3,5 (36) · Magasin de chaussures
      Westfield Les 4 Temps
      Voie des Douces B30 · 01 47 31 44 02
      Ouvert ⋅ Ferme à 19:00
      Leur site Web mentionne "lacoste" et "317"
      Lacoste Paris - Palais des Congrés
      3,9 (24) · Magasin de vêtements
      Les Boutiques Du Palais
      2 Place de la Porte Maillot · 01 45 74 69 54
      Fermé ⋅ Ouvre à 14:00
      Retrait en magasin
      Autres adresses

      Résultats Web


      Achat chaussures homme lacoste 317 pas cher ou d'occasion ...

      fr.shopping.rakuten.com › Mode & Beauté › Chaussures
      fr.shopping.rakuten.com › Mode & Beauté › Chaussures
      1. En cache
      Chaussures Homme Lacoste 317. Filtrer. Meilleures ventes, Moins cher, Plus cher, Date d'arrivée, Titre, À propos des modalités de tri. Meilleures ventes.

      Lacoste Avenir 317 Noir - Livraison Gratuite | Spartoo ...

      www.spartoo.com › ... › Lacoste Avenir
      www.spartoo.com › ... › Lacoste Avenir
      1. En cache
      Lacoste Avenir 317,Basket femme Article: Avenir 317 Reference: 7-34SPW0003024 Manufacture: Lacoste Product category: Basket femme - Avenir 317 - Noir ...

      Lacoste Basket LTR01 317 6SPM - Ref. 734SPM0035144 ...

      www.spartoo.com › ... › Lacoste Basket
      www.spartoo.com › ... › Lacoste Basket
      1. En cache
      Basket Lacoste LTR01 317 6SPM. Coloris : Bleu marine, Rouge, Blanc. Référence : 734SPM0035144. Partenaire idéale pour une tenue à la fois élégante et ...

      Lacoste L.IGHT 317 5 (Bleu) - Baskets chez Sarenza (303036)

      www.sarenza.com › lacoste-l-ight-317-5-s834060-br91...
      www.sarenza.com › lacoste-l-ight-317-5-s834060-br91...
      1. En cache
      Découvrez notre sélection de Baskets Lacoste L.IGHT 317 5 sur Sarenza. Livraison et retour toujours gratuits !

      Lacoste Europa 317 1 SPM en Cuir Baskets Chaussures ...

      pwia.net › ... › Basket › Baskets pour homme
      pwia.net › ... › Basket › Baskets pour homme
      1. En cache
      Les meilleures offres pour lacoste europa 317 1 spm leather trainers shoes mens sont sur ✓ Comparez les prix et les spécificités des produits neufs et ...
      Produits similaires
      Image du produit : Lacoste Avenir 317 Chaussures
      Lacoste Avenir 317 Chaussures
      Image du produit : Lacoste Baskets basses Basket Carnaby Evo 317 10 SPM - Ref. 734SPM006121G Homme Blanc 46
      Lacoste Baskets basses Basket Carnaby Evo 317 10 SPM - Ref. 734SPM006121G Homme Blanc 46
      Image du produit : Lacoste Baskets basses Basket Carnaby Evo 317 10 SPM - Ref. 734SPM006121G Homme Blanc 40
      Lacoste Baskets basses Basket Carnaby Evo 317 10 SPM - Ref. 734SPM006121G Homme Blanc 40
      Image du produit : Lunettes de Vue Lacoste L2805 317
      Lunettes de Vue Lacoste L2805 317
      (146)
      Image du produit : Lacoste - Joggeur 317
      Lacoste - Joggeur 317
      Découvrir d'autres lieux
      + 18
      autres
      Magasins de vêtements pour enfants
      OKAIDI LEVALLOIS PERRET SO OUEST, Petit Bateau Levallois Perret autres
      + 18
      autres
      Magasins de vêtements
      Pull et Bear France, Zara home autres
      + 18
      autres
      Magasins de chaussures
      Courir, Foot Locker autres

      Navigation par pages

      12345678910Suivant

      Résultats complémentaires

      Lacoste Lunettes
      146 avis
      Partager
      Facebook
      Twitter
      E-mail
      Cliquez pour copier le lien
      Partager le lien
      Lien copié
      Lacoste Lunettes
      146 avis
      Image du produit : Lacoste Lunettes
      Lacoste Lunettes
      Acheter
      Annonce sponsorisée
      Pourquoi ces annonces ?
      Couleur
      Tous les types de Couleur
      317
      424
      Tortoise
      Taille
      Tous les types de Taille
      2805
      2807
      56
      102,75 € · Edel-Optics FR · Par Google
      317 · 2807
      Livraison gratuite, 
      75,00 € · EasyLunettes.fr · Par Producthero
      317 · 2805
      Livraison gratuite, 
      Lacoste Lunettes
      146 avis
      Couleur
      Tous les types de Couleur
      317
      424
      Tortoise
      Taille
      Tous les types de Taille
      2805
      2807
      56
      Annonce sponsorisée
      Pourquoi ces annonces ?
      Chargement en cours…
      Vendu parInformations sur le produitDétails et offres spécialesPrix de l'article
      Edel-Optics FR317 · 2807
      Livraison gratuite·
      102,75 €Visiter le site · Par Google
      EasyLunettes.fr317 · 2805
      Livraison gratuite·
      75,00 €Visiter le site · Par Producthero
      Marque: Lacoste
      Type: Verres correcteurs
      Gamme: Homme
      Types de montures: Cerclées
      Lacoste Lunettes
      146 avis
      Les lunettes de vue Lacoste Lacoste L 2807 317 sont des lunettes de soleil por Homme. Couleur de la monture: Gris, Taille: Medium, Forme: Fullframe, Largeur de la monture: 134mm, Hauteur des verres: 40mm, Cerclées: Plastique. Largeur du Pont: 16mm. Fabricant: Marchon Germany GmbH. Style: Modern
      Marque
      Lacoste
      Type
      Verres correcteurs
      Gamme
      Homme
      Types de montures
      Cerclées
      Matériau de la monture
      Monture en plastique
      Type de plastique
      Acétate
      Avis des utilisateurs
      4,6
      146 avis
      5
      4
      3
      2
      1
      il y a un an
      N'ayant trouvé dans aucune boutique de ma ville des lunettes orange, j'ai effectué une recherche sur internet. +J'ai trouvé et choisi ce modèle sur visio net pour ses couleurs et ses dimensions. +Il correspond exactement à ce que je recherchais…
      · Avis publié sur visio-net.fr
      Lacoste Lunettes
      4,6
      146 avis
      5
      4
      3
      2
      1
      Une erreur s'est produite.
      Une erreur s'est produite.

      Liens de pied de page

      France
      92400 - D'après votre adresse Internet - Utiliser la position exacte - En savoir plus
      AideEnvoyer des commentairesConfidentialitéConditionsInfo consommateurs
      Applications Google
      \ No newline at end of file diff --git a/test/modules/google.js b/test/modules/google.js index adfc23c..5372314 100644 --- a/test/modules/google.js +++ b/test/modules/google.js @@ -143,4 +143,48 @@ describe('Module Google', function(){ }); }); -}); \ No newline at end of file + it('shopping extract right one product', function () { + const googleScraper = new GoogleScraper({ + config: { + search_engine_name: 'google', + throw_on_detection: true, + keywords: ['shopping right product review'], + logger: testLogger, + scrape_from_file: '', + num_pages: 1, + } + }); + googleScraper.STANDARD_TIMEOUT = 500; + return googleScraper.run({page}).then(({results, metadata, num_requests}) => { + assert.strictEqual(num_requests, 1, 'One request should be done'); + assert.strictEqual(results['shopping right product review']['1'].results.length, 9, 'Must have 9 organic results parsed on page 1'); + assert.deepEqual(results['shopping right product review']['1'].right_info, { + title: 'Lacoste Lunettes', + 'info': '', + 'num_reviews': '146 avis', + 'review': 'Note : 4,6 sur 5', + 'vendors': [ + { + 'info': '317 · 2807', + 'merchant_ad_link': 'https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwihq9C82ojqAhUIyrIKHbIHAx8YABACGgJscg&ohost=www.google.com&cid=CAASE-Roz5UHMJg95vk99OwXQnKbUG0&sig=AOD64_0Wfsw3t3eO_yEtq8lWRIjiF6EqZw&ctype=5&q=&ved=2ahUKEwjsqsi82ojqAhVFPBoKHY38DAIQ9A56BAgNEH0&adurl=', + 'merchant_name': 'Edel-Optics FR', + 'price': '102,75 €', + 'shipping': 'Livraison gratuite', + 'source_link': 'https://www.google.com/search?tbm=shop&q=lacoste%20317', + 'source_name': 'Par Google', + }, + { + 'info': '317 · 2805', + 'merchant_ad_link': 'https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwihq9C82ojqAhUIyrIKHbIHAx8YABADGgJscg&ohost=www.google.com&cid=CAASE-Roz5UHMJg95vk99OwXQnKbUG0&sig=AOD64_2R4Idoiqc783K8OLyv9W9YQTJfog&ctype=5&q=&ved=2ahUKEwjsqsi82ojqAhVFPBoKHY38DAIQ9A56BQgNEIEB&adurl=', + 'merchant_name': 'EasyLunettes.fr', + 'price': '75,00 €', + 'shipping': 'Livraison gratuite', + 'source_link': 'https://producthero.com/?utm_source=google&utm_medium=css&q=lacoste%20317', + 'source_name': 'Par Producthero', + } + ] + }); + }); + }); + +});