我正在做一个小项目,允许用户在instagram帐户上执行特定操作。这些操作将包括获取关注者/关注者、取消关注帐户和接受关注请求。由于某些原因,我在尝试为帐户编写类时,似乎无法使帐户的签名生效。我已经登录了这个函数,但是我想让account/session成为自己的数据类型,这样我就可以对它进行操作,以便将来使用它。我不确定我做错了什么。这是我目前的代码:
import requests
import json
class User:
# Constructor
def __init__(self, username, password):
self.session = requests.Session()
self.userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'
self.password = password
self.username = username
self.baseUrl = 'https://www.instagram.com/accounts/login/ajax/'
self.refererUrl = 'https://www.instagram.com/accounts/login/'
# Methods
def start_session(self):
try:
self.req = self.session.get(self.baseUrl)
self.session.headers = {'user-agent': self.userAgent}
self.session.headers.update({'Referer': self.refererUrl})
self.session.headers.update({'x-csrftoken': self.req.cookies['csrftoken']})
self.login_data = {'username': self.username, 'password': self.password}
self.login = self.session.post(self.baseUrl, data=self.login_data, allow_redirects=True)
self.headers.update({'x-csrftoken': self.login.cookies['csrftoken']})
print(self.login.json())
except:
print("There was an error signing in.")
def main():
print("Welcome to InstaTool. Please type in your username and password.")
username = input("Username: ")
password = input("Password: ")
insta_account = User(username, password)
insta_account.start_session()
if __name__ == "__main__":
main()
这是我的错误:
Traceback (most recent call last):
File "/Users/ty/InstaTool/InstaTool.py", line 50, in <module>
main()
File "/Users/ty/InstaTool/InstaTool.py", line 46, in main
insta_account.start_session()
File "/Users/ty/InstaTool/InstaTool.py", line 33, in start_session
self.headers.update({'x-csrftoken': self.login.cookies['csrftoken']})
AttributeError: 'User' object has no attribute 'headers'
我很困惑,因为我不知道如果我计划在start\u session()函数中更新标题,为什么我的对象需要一个“headers”属性。感谢您的帮助。你知道吗
似乎试图在
self
上调用headers
方法,即User
:你可能希望这句话是:
相关问题 更多 >
编程相关推荐