python - beautifulSoup4 .select('.bnrName') ne peut pas obtenir le texte
伊谢尔伦
伊谢尔伦 2017-05-18 10:45:48
0
4
784

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.

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(4)
大家讲道理

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.

習慣沉默

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

小葫芦

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

小葫芦

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 !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal