Maison  >  Questions et réponses  >  le corps du texte

python - beautifulSoup4 .select('.bnrName') ne peut pas obtenir le texte

Contexte :
Utilisez la sélection de bs4 sous Python3 pour obtenir le nom du magasin dans les informations du coupon en haut de la page d'accueil de ZOZO. (L'adresse IP nationale semble incapable de voir les informations du coupon. Vous devez les faire défiler pour les voir. Il est préférable d'utiliser l'adresse IP d'un pays insulaire)

Question : 
Je trouve que je ne trouve pas où est écrit le nom de son magasin. Je ne sais pas comment l'obtenir. Je ne comprends pas le js du front-end. Veuillez me donner une réponse. Merci.

Mon code est le suivant :

import requests, bs4

shopName = 'BEAUTY&YOUTH'
url = 'http://zozo.jp/'

def getZozoCoupon():
    res = requests.get(url, headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"})
    res.raise_for_status()
    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    elems = soup.select('.bnrName')
    return elems[0].text.strip()

La capture d'écran ci-dessous est le texte que vous souhaitez obtenir,

J'ai constaté qu'il n'y avait pas de texte dans le code source.

<p class="couponInfo">
    <p class="bnrName">说好的文字呢。。。</p>
    <p class="bnrText"></p>
</p>

Veuillez me dire où son texte est implémenté et comment utiliser bs4 select pour l'afficher. Merci.

伊谢尔伦伊谢尔伦2711 Il y a quelques jours747

répondre à tous(4)je répondrai

  • 大家讲道理

    大家讲道理2017-05-18 10:47:48

    Il est possible d'utiliser ajax pour l'obtenir depuis le serveur puis d'utiliser le dom pour l'ajouter dynamiquement Lorsque js est exécuté dans le navigateur, le texte sera également ajouté. Lorsque vous avez exploré avec un robot d'exploration, vous n'avez pas exécuté les js pertinents, vous n'avez donc pas ajouté de texte.

    Si tel est vraiment le cas, vous pouvez vérifier le réseau en f12 du navigateur, connaître l'URL de la requête http pour obtenir le texte, et demander directement cette URL pour obtenir les informations dont vous avez besoin.

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-18 10:47:48

    J'ai ouvert http://zozo.jp/ dans le navigateur pour afficher le code source et je n'ai pas trouvé le bnrName que vous recherchiez

    répondre
    0
  • 高洛峰

    高洛峰2017-05-18 10:47:48

    Cliquez avec le bouton droit sur le navigateur et « afficher le code source de la page Web » pour voir si vous pouvez trouver votre texte. Si vous ne le trouvez pas, la page Web doit être chargée dynamiquement à l'aide de js ou d'ajax. Si vous souhaitez l'explorer. sorte de page dynamique, vous devez Il n'y a pas d'autre moyen, soit de simuler manuellement la requête vous-même, soit d'utiliser du sélénium pour l'attraper

    répondre
    0
  • 高洛峰

    高洛峰2017-05-18 10:47:48

    Il est en effet généré par js. Il a été simulé et capturé à l'aide d'un navigateur sans tête Merci à tous !

    répondre
    0
  • Annulerrépondre