无法使用一些基于请求构建的脚本来关注网站中的用户
Unable to follow a user in a website using some script built upon requests
我正在尝试使用以下根据请求构建的脚本在 Instagram 中关注用户。该脚本可以让我成功登录,但无法帮助我关注该用户。我尽力通过脚本模拟该过程,同时手动关注该用户时我可以在开发工具中看到。
User 我希望使用脚本进行跟踪。
这就是脚本运行时 the result 的样子。
我试过:
import re
import requests
from bs4 import BeautifulSoup
from datetime import datetime
target_link = 'https://www.instagram.com/p/CBySO76FgD6/'
profile_link = 'https://www.instagram.com/{}/'
start_link = 'https://www.instagram.com/accounts/login/'
login_url = 'https://www.instagram.com/accounts/login/ajax/'
follow_url = 'https://www.instagram.com/web/friendships/{}/follow/'
username = "instagram_username"
password = "instagram_password"
timeval = int(datetime.now().timestamp())
payload = {
'username': username,
'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{timeval}:{password}',
'queryParams': {},
'optIntoOneTap': 'false'
}
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
r = s.get(start_link)
s.headers['x-csrftoken'] = re.findall(r"csrf_token\":\"(.*?)\"",r.text)[0]
r = s.post(login_url,data=payload) #it does log me in flawlessly
# print(r.text)
s.get(profile_link.format(username)) #send this requests only to get cookies from profile page
r = s.get(target_link)
follow_id = re.findall(r'viewer_can_reshare[\s\S]+?id\":\"(.*?)\"',r.text)[0]
r = s.post(follow_url.format(follow_id),data=None)
print(r.status_code) #giving 403 status code
要使此类请求有效,您必须更改一些 headers。
headers 应该是这样的:
'cookie': 'sessionid={}%3ADYLfeCKlCulTTJ%3A6;'.format(login_id),
'origin': 'https://www.instagram.com',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'x-csrftoken': 'rf3krAvciHRvjSBoqP4NYVXmw1wP8rEO',
'x-instagram-ajax': '846d5a59d9e9'
其中 login_id - 这是您的用户的 ID。注意,不是用户名,它应该是数字 ID(例如 8780495634)
然后你可以post请求关注你想要的蚂蚁用户。
我正在尝试使用以下根据请求构建的脚本在 Instagram 中关注用户。该脚本可以让我成功登录,但无法帮助我关注该用户。我尽力通过脚本模拟该过程,同时手动关注该用户时我可以在开发工具中看到。
User 我希望使用脚本进行跟踪。
这就是脚本运行时 the result 的样子。
我试过:
import re
import requests
from bs4 import BeautifulSoup
from datetime import datetime
target_link = 'https://www.instagram.com/p/CBySO76FgD6/'
profile_link = 'https://www.instagram.com/{}/'
start_link = 'https://www.instagram.com/accounts/login/'
login_url = 'https://www.instagram.com/accounts/login/ajax/'
follow_url = 'https://www.instagram.com/web/friendships/{}/follow/'
username = "instagram_username"
password = "instagram_password"
timeval = int(datetime.now().timestamp())
payload = {
'username': username,
'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{timeval}:{password}',
'queryParams': {},
'optIntoOneTap': 'false'
}
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
r = s.get(start_link)
s.headers['x-csrftoken'] = re.findall(r"csrf_token\":\"(.*?)\"",r.text)[0]
r = s.post(login_url,data=payload) #it does log me in flawlessly
# print(r.text)
s.get(profile_link.format(username)) #send this requests only to get cookies from profile page
r = s.get(target_link)
follow_id = re.findall(r'viewer_can_reshare[\s\S]+?id\":\"(.*?)\"',r.text)[0]
r = s.post(follow_url.format(follow_id),data=None)
print(r.status_code) #giving 403 status code
要使此类请求有效,您必须更改一些 headers。 headers 应该是这样的:
'cookie': 'sessionid={}%3ADYLfeCKlCulTTJ%3A6;'.format(login_id),
'origin': 'https://www.instagram.com',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'x-csrftoken': 'rf3krAvciHRvjSBoqP4NYVXmw1wP8rEO',
'x-instagram-ajax': '846d5a59d9e9'
其中 login_id - 这是您的用户的 ID。注意,不是用户名,它应该是数字 ID(例如 8780495634) 然后你可以post请求关注你想要的蚂蚁用户。