Raspagem em Python

Ravi

Eu queria pegar a legenda, não. de curtidas e comentários das 10 imagens recentes de um determinado usuário. Usando o código abaixo, só consigo obter o mais recente.

Código:

from selenium import webdriver
from bs4 import BeautifulSoup
import json, time, re
phantomjs_path = r'C:\Users\ravi.janjwadia\Desktop\phantomjs-2.1.1-windows\bin\phantomjs.exe'
browser = webdriver.PhantomJS(phantomjs_path)
user = "barackobama"     
browser.get('https://instagram.com/' + user)
time.sleep(0.5)
soup = BeautifulSoup(browser.page_source, 'html.parser')
script_tag = soup.find('script',text=re.compile('window\._sharedData'))
shared_data = script_tag.string.partition('=')[-1].strip(' ;')
result = json.loads(shared_data)
print(result['entry_data']['ProfilePage'][0]['user']['media']['nodes'][0]['caption'])

Resultado: ÚLTIMA CHAMADA: Inscreva-se para ter a chance de se encontrar com o presidente Obama neste verão antes do prazo desta noite. → Link no perfil.

Munosfera

Em seu código abaixo, você está recuperando apenas o primeiro nó (que é a primeira imagem).

print(result['entry_data']['ProfilePage'][0]['user']['media']['nodes'][0]['caption'])

Para obter as informações das 10 imagens recentes do usuário, tente fazer isso.

recent_ten_nodes = result['entry_data']['ProfilePage'][0]['user']['media']['nodes'][:10]

Para imprimir apenas as legendas, número de curtidas e comentários, faça isso.

for node in recent_ten_nodes:
    print node['caption']
    print node['likes']['count']
    print node['comments']['count'] 

Para armazenar esses valores, cabe a você decidir como deseja armazená-los.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados