Я хотел получить подпись, нет. лайков и комментариев к последним 10 изображениям конкретного пользователя. Используя приведенный ниже код, я просто могу получить последний.
Код:
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'])
Результат: ПОСЛЕДНИЙ ЗВОНОК: Войдите, чтобы получить шанс встретиться с президентом Обамой этим летом до крайнего срока, установленного сегодня вечером. → Ссылка в профиле.
В приведенном ниже коде вы получаете только первый узел (то есть первое изображение).
print(result['entry_data']['ProfilePage'][0]['user']['media']['nodes'][0]['caption'])
Чтобы получить информацию о последних 10 изображениях пользователя, попробуйте это.
recent_ten_nodes = result['entry_data']['ProfilePage'][0]['user']['media']['nodes'][:10]
Чтобы напечатать только подписи, количество лайков и комментариев.
for node in recent_ten_nodes:
print node['caption']
print node['likes']['count']
print node['comments']['count']
Для сохранения этих значений вам решать, как их хранить.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения