Comment gratter Instagram avec BeautifulSoup
Je veux gratter des photos à partir d'un public Instagram compte. Je suis assez familier avec bs4 donc j'ai commencé avec ça. À l'aide de l'élément de l'inspecteur de Chrome, j'ai noté les images sont dans une liste non ordonnée et li a de la classe "photo", j'ai donc la figure, ce que l'enfer -- peut pas être difficile de le gratter avec findAll, droit?
Mal: elle ne retourne rien (code ci-dessous) et j'ai tôt fait de remarquer que le code affiché dans l'élément de l'inspecteur et le code que j'ai dessiné à partir de demandes n'étaient pas les mêmes AKA pas de liste non ordonnée dans le code que j'ai sorti de demandes.
Une idée de comment je peux obtenir le code qui s'affiche dans l'élément de l'inspecteur?
Juste pour le record, c'était mon code pour démarrer, ce qui ne fonctionne pas car la liste non ordonnée n'était pas là:
from bs4 import BeautifulSoup
import requests
import re
r = requests.get('http://instagram.com/umnpics/')
soup = BeautifulSoup(r.text)
for x in soup.findAll('li', {'class':'photo'}):
print x
Merci pour votre aide.
OriginalL'auteur Frank Bi | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Si vous regardez le code source de la page, vous verrez que certains javascript génère la page web. Ce que vous voyez dans l'élément du navigateur est la page web après que le script a été exécuté, et beautifulsoup obtient juste le fichier html. Afin d'analyser le rendu de la page web que vous aurez besoin d'utiliser quelque chose comme Le sélénium pour le rendu de la page web pour vous.
Ainsi, par exemple, c'est comment il serait regarder avec Sélénium:
Maintenant la soupe doit être ce que vous attendez.
OriginalL'auteur mr2ert