0
votes

Comment extraire les données de HTML

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. XXX

Cela me donne xxx

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 à xxx


0 commentaires

3 Réponses :


0
votes

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: xxx < / pré>

mais vous voyez cela dans un navigateur Web: xxx

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.

Il n'y a aucun moyen d'utiliser Demandes ou BS4 ou quelque chose du genre pour se déplacer. Vous pouvez 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.

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: xxx

Notez que vous devrez installer sélénium et avoir besoin d'obtenir une copie du pilote approprié, comme chromedriver.exe . Ajoutez-le à votre environnement virtuel:


0 commentaires

0
votes

Je pense que vous devriez utiliser 'utilisateur-agent' .vous pouvez l'essayer: xxx


0 commentaires

0
votes

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)


0 commentaires