GitHubに公開されている、Instagramのフォロワー数を出す以下プログラムについて解決できないことがあります。
複数アカウントの数をまとめて分かると便利だなと思うのですが、
statuses['instagram'] = cls.__get_instagram_statuses('https://www.instagram.com/******/')
statuses['instagram'] = cls.__get_instagram_statuses('https://www.instagram.com/******/')
上記の書き方ですと、下のIDのフォロワー数しか表示されません。
どのように書けば複数アカウントのフォロワー数を表示することができますでしょうか。
有識者の方、ご教示いただきたくお願いいたします。
import json import re import requests from typing import Dict from bs4 import BeautifulSoup class SocialMedias(): @classmethod def get_statuses(cls) -> Dict: statuses = {} statuses['instagram'] = cls.__get_instagram_statuses('https://www.instagram.com/インスタID/') statuses['instagram'] = cls.__get_instagram_statuses('https://www.instagram.com/インスタID/') return statuses @classmethod def __get_instagram_statuses(cls, url: str) -> Dict: statuses = {} # ToDo: error handling response = requests.get(url) soup = BeautifulSoup(response.content, 'lxml') js = soup.find("script", text=re.compile("window._sharedData")).text data = json.loads(js[js.find("{"):js.rfind("}")+1]); statuses['following_count'] = data['entry_data']['ProfilePage'][0]['graphql']['user']['edge_follow']['count'] statuses['follower_count'] = data['entry_data']['ProfilePage'][0]['graphql']['user']['edge_followed_by']['count'] return statuses @staticmethod def __get_element_by_class(soup: BeautifulSoup, class_name: str) -> BeautifulSoup: return soup.find(attrs={'class': re.compile('^' + class_name + '$')}) social_medias = SocialMedias() print(social_medias.get_statuses())
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/26 01:28