0
votes

Impossible de gratter des conteneurs à partir de pages Web

J'essaie de pratiquer la liste Web d'une page Web de commerce électronique. J'ai identifié le nom de la classe du conteneur (cellule contenant chaque produit) pour être 'c3e8sh' . J'ai ensuite utilisé le code suivant pour gratter pour tous les conteneurs dans cette page Web. Après quoi, j'ai utilisé len (conteneurs) pour vérifier le nombre de conteneurs dans la page Web.

Cependant, il a renvoyé une personne de 0. Peut-on souligner ce que je fais mal? Merci beaucoup! xxx

capture d'écran de l'inspection des éléments


3 commentaires

Êtes-vous sûr que le nom de la classe était "C3E8SH"? J'essaie de résoudre votre problème avec regex, mais je n'ai pas trouvé de classe avec le nom de 'C3E8SH'.


@HameDBaziYad j'ai ajouté une photo, je fais-je référencer la mauvaise chose?


S'il vous plaît, déterminez votre section sur la photo.


3 Réponses :


0
votes

Essayez d'utiliser un autre analyseur. Je recommande lxml . Donc, votre ligne où vous créez le page_soup serait: page_soup = soupe (page_html, 'lxml')


0 commentaires

2
votes

(1) Premièrement, les cookies Param sont nécessaires code>.

Vous allez obtenir la page de validation > comme ci-dessous si vous ne demandez que le lien sans cookies P>

https://www.lazada.sg/catalog/?spm=a2o42.home.search.1.488d46b5mjgzeu&q=keyori=ss&from=search_history&sugg=switch%20Games_0_1

p>

 Entrez la description de l'image ici p>


p>


p>

( 2) Deuxièmement, la page que vous souhaitez gratter est chargée dynamiquement code> h3>

C'est pourquoi ce que vous voyez via le navigateur Web est différent de ce que vous obtenez par code p> BlockQuote>

Pour plus de commodité, je préférerais utiliser le module Demandes CODE>. P>

item_json = 

    {
        "@context":"https://schema.org",
        "@type":"ItemList",
        "itemListElement":[
            {
                "offers":{
                    "priceCurrency":"SGD",
                    "@type":"Offer",
                    "price":"72.90",
                    "availability":"https://schema.org/InStock"
                },
                "image":"https://sg-test-11.slatic.net/p/ae0494e8a5eb7412830ac9822984f67a.jpg",
                "@type":"Product",
                "name":"Nintendo Switch New Super Mario Bros U Deluxe",  # item name
                "url":"https://www.lazada.sg/products/nintendo-switch-new-super-mario-bros-u-deluxe-i292338164-s484601143.html?search=1"
            },
            ... 

        ]

    }


2 commentaires

Désolé je suis très nouveau à cela, j'ai copié votre code (à partir des demandes d'importation), cependant, je suis retourné avec un faux. De plus, où obtenez-vous les cordes de codes sous des cookies? J'appréciera beaucoup si vous pouvez m'éclairer merci!


@Daimon Vous pouvez le trouver à partir de Demander des en-têtes par votre navigateur Web



0
votes

J'ai essayé de trouver c3e8sh dans votre document suggéré avec regex , mais je ne trouve pas de ce nom de classe. S'il vous plaît, vérifiez à nouveau votre document.


0 commentaires