*本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除
首先就拿用户文章接口分析,复制出cURL转换成Python代码,分别删除cookie和其中比较特殊的参数然后尝试请求,多次尝试发现headers 中authorization和x-guest-token必须携带。
先用搜索法在所有可疑的地方打上断点,打完断点后注意这步很重要,清除cookie!清除cookie!清除cookie!
清除完cookie后,重新发送请求,触发断点,发现RO是我们要找的值。
向上找发现 RO = Gr.d ,继续找Gr.d ,发现 Gr = n(“cnVF”),进到这个函数发现,值是固定的,针不戳呀!
老规矩先搜索法,打上断点,清除cookie清除cookie清除cookie然后重新发送请求,发现判断了下url是否是这个,是的话就赋值,直接去找这个请求发现,response就是我们需要的guest_token。
这里拿作者信息接口为例,首先访问activate接口申请一个guest_token,然后就可以访问嘞。
import requests
headers = {
'authority': 'api.twitter.com',
'authorization': 'Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA',
'origin': 'https://twitter.com',
'referer': 'https://twitter.com/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}
response = requests.post('https://api.twitter.com/1.1/guest/activate.json', headers=headers).json()
headers['x-guest-token'] = response['guest_token']
params = (
('variables', '{"screen_name":"channelnewsasia","withSafetyModeUserFields":true,"withSuperFollowsUserFields":true}'),
)
response = requests.get('https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName', headers=headers, params=params)
print(response.text)
其实整个分析过程还是挺简单,有兴趣的同学可以自己试试,