J'essayais d'utiliser belleSoup4 avec Python pour gratter un certain site Web. Cependant, lorsque j'ai essayé de voir le contenu de l'URL, cela ne me donne qu'une partie d'en-tête et ne me donne pas une partie du corps que je veux utiliser. Cela me donne p> Il devrait y avoir du contenu à l'intérieur de l'étiquette du corps, mais cela ne montre rien.
Le HTML original de cette page Web ressemble à p>
3 Réponses :
Il est difficile de fournir une réponse de travail sans URL de travail, mais votre question fournit quelques indices.
Pour un, vous dites que vous recevez ceci dans la réponse d'un get: p> mais vous voyez cela dans un navigateur Web: p> ceci suggère que la page contient de la page JavaScript en cours d'exécution qui continue de charger et de construire la page après l'initiale. La page a été chargée. p> Il n'y a aucun moyen d'utiliser Mais si vous avez besoin du HTML après le rendu, comme rendu par le script, vous pouvez essayer d'utiliser un navigateur capable JavaScript à partir de Python, comme Chrome conduit à travers le sélénium chrome webdiver: p> Notez que vous devrez installer sélénium et avoir besoin d'obtenir une copie du pilote approprié, comme Demandes code> ou
BS4 code> ou quelque chose du genre pour se déplacer. Vous pouvez EM> Vérifiez quelle demande suit la charge de la page initiale qui a le contenu réel (il peut s'agir d'un autre morceau de HTML, de JSON, etc.) et d'utiliser cette demande pour obtenir le contenu. Si vous voulez essayer cela, essayez d'ouvrir les outils de développement dans un bon navigateur et de consulter l'onglet Réseau pendant le chargement de la page, vous verrez toutes les demandes et l'une d'entre elles peut contenir le contenu que vous après. p>
chromedriver.exe code>. Ajoutez-le à votre environnement virtuel: P>
PIP Installation SELENIUM CODE> LI>
(Dressez l'exécutable dans votre dossier de script) Li>
ul> p>
Je pense que vous devriez utiliser 'utilisateur-agent' code> .vous pouvez l'essayer:
aucune idée de ce que vous êtes exactement après ou que vous voulez comme une sortie. Mais vous pouvez accéder à la réponse JSON d'Ajax:
import pandas as pd import requests url='https://www.pixiv.net/ajax/user/14792128/profile/all?lang=en' jsonData = requests.get(url).json() data = jsonData['body']['mangaSeries'] df = pd.DataFrame(data)