2016-12-14 4 views
2

タグに関するすべての "code:"を収集したいところで少しスクリプトを実行しています。例えばこのスクリプトをPython(Instagram)でこの関数と統合する方法

https://www.instagram.com/explore/tags/%s/?__a=1 

次の次のページは次のようになります。

https://www.instagram.com/explore/tags/plebiscito/?__a=1&max_id=end_cursor

しかし、私の欠点は、各URLは私が何を私を得るようにすることです必要(これは人々のコメントとユーザー名です)。 スクリプトが機能するので、必要なことをしません。

"obtain_max_id"関数は動作し、次のend_cursorsを取得しますが、どのように適応させるかわかりません。 私はあなたの助けに感謝します!

結論として、私はそれぞれのURLで必要な情報を抽出するために、 "connect_main"関数の "obtain_max_id"関数を適合させる必要があります。あなたのobtain_max_id()メソッド内whileループに

data = json.loads(finish.text) 

+0

あなたの質問は不明です。あなたは正確に何を探しているのですか? – Quirk

+0

データの抽出が完了したら、すべてのプロセスをURLごとに実行するには、次のURL(https://www.instagram.com/explore/tags/plebiscito/?__a=1&max_id=end_cursor)で同じ処理を行います。 ...手順は次のようになります: URL - データの抽出 次のURL ... URL - データの抽出 ....続きを読む @Quirk – Thedark

+0

私の質問が更新されました。 @Quirk – Thedark

答えて

0

は、あなたが行を実行した直後に、あなたは(JSON形式で)あなたのdata変数に必要なすべてのデータを持っています。ただそれを使用してください。あなたのconnect_main()方法のelseブロック内

と仮定すると、すべてはあなたのdata変数内のすべてのデータを持っている右の後、上記whileループ内あなたはできる簡単な使用そのコードを、動作します。

+0

しかし、 "obtain_max_id"関数は、カーソルを次々に引き出すということです。私が言ったように、私はそれをそれぞれの目的のためにJSONで抽出する必要があるデータの1つ1つずつ行う必要があります。 URL @Quirk – Thedark

+0

あなたは 'end_cursor []'に値を追加し、次の繰り返しで*その*値を使用して新しいページを取得し、それを 'data'にロードするときに*すでに*行っています。空の 'end_cursor []'リストから始め、あなたが訪問したすべてのページにカーソルを追加すると、ループが終了したときに、カーソルに対応するすべてのページを訪れたことになります。 – Quirk

+0

私は理解していますが、コメントを抽出するときに、別のWhile(count <40 :)で無名ループに残るので、他のend_cursorsを続行せずにFirstに留まります。 私の考えは、end_cursorを実行するたびにstatitcのままデータを抽出した後、最後のend_cursorを要求していたので、サイクルではなく順番に実行しますスクリプトを進める。 @Quirk – Thedark

1

これは簡単です。

import requests 
import json 

host = "https://www.instagram.com/explore/tags/plebiscito/?__a=1" 

r = requests.get(host).json() 

for x in r['tag']['media']['nodes']: 
    print (x['code']) 

next = r['tag']['media']['page_info']['end_cursor'] 

while next: 
    r = requests.get(host + "&max_id=" + next).json() 
    for x in r['tag']['media']['nodes']: 
     print (x['code']) 

    next = r['tag']['media']['page_info']['end_cursor'] 
+0

あなたのmax_idはr ['tag'] ['media'] ['page_info'] ['end_cursor']がNoneの場合です – sandes

関連する問題