2016-06-21 21 views
3

私はキャプションを取得したかった。特定のユーザーの最近の10枚の画像の好き嫌いとコメントの数 以下のコードを使用して、最新のものを入手できます。Pythonを掻き集める

コード:

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']) 

結果: LAST CALL:今夜の締め切り前にこの夏、オバマ大統領に会う機会のために入力します。 →プロフィールにリンクしてください。以下のコードで

答えて

3

、あなただけの(最初の画像である)最初のノードを取得しています。

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'] 

これらの値を保存するには、保存方法を決定する必要があります。

+0

この行き方: はTypeError:リストインデックスは整数でなければなりません、 – Ravi

+0

私の悪いをstrないし。私は私の答えを編集しました。更新された回答が動作するかどうかを教えてください:) –

+0

ありがとうございます。その完璧な動作 – Ravi

関連する問題