我试着在网上搜索,但似乎什么也找不到。我如何为Instagram帐户传入用户名,并能够在Python中检索其追随者总数
在我当前的代码中,我找到了应该工作的代码,但是我得到了以下错误:
AttributeError:“非类型”对象没有属性“attrs”
现行代码
import instaloader
from bs4 import BeautifulSoup
import requests
L = instaloader.Instaloader()
URL = "https://www.instagram.com/{}/"
def get_followers():
# Login
username = input("Enter your username: ")
password = input("Enter your password: ")
L.login(username, password)
# Obtain profile metadata
profile = instaloader.Profile.from_username(L.context, username)
follow_list = []
# Loop through each follower and add to list
for followee in profile.get_followers():
follow_list.append(followee.username)
return follow_list
def parse_data(x):
data = {}
# Split up the data
x = x.split("-")[0]
x = x.split("-")
# Make new key values for each attribute
data["Followers"] = x[0]
data["Following"] = x[2]
data["Posts"] = x[4]
return data
def scrape_data(username):
r = requests.get(URL.format(username))
s = BeautifulSoup(r.text, "html.parser")
meta = s.find("meta", property="og : description")
return parse_data(meta.attrs['content'])
if __name__ == "__main__":
list_of_followers = get_followers()
result = {}
for follower in list_of_followers:
follower_data = scrape_data(follower)
# Add follower name + there followers to dictionary
result[follower] = follower["Followers"]
result = dict(sorted(result.items(), key=lambda item: item[1]))
n_input = int(input("How many of your top followers do you want to see?: "))
n_items = list(result)[:n_input]
print(n_items)
看起来你没有从网页上获得任何信息,所以r是空的,s是空的,meta也是空的,这意味着它是一个none类型,所以试图找到meta的属性attrs没有意义,因为nonetype没有任何属性
我用跨平台的kivymd制作了一个instaloader来完成这一切:
您可以在此处找到回购协议:
https://github.com/T246-Edu/instgram_loader_with_username.git
相关问题 更多 >
编程相关推荐