我将如何使用BeautifulSoup4和Requests登录到Instagram,以及如何自行确定它? [英] How would I log into Instagram using BeautifulSoup4 and Requests, and how would I determine it on my own?

查看:102
本文介绍了我将如何使用BeautifulSoup4和Requests登录到Instagram,以及如何自行确定它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我已经看过Stack Overflow上的这两篇文章:我无法使用请求登录Instagram Instagram python请求无需API即可登录.这两种解决方案都不适合我.

I've looked at these two posts on Stack Overflow so far: I can't login to Instagram with Requests and Instagram python requests log in without API. Both of the solutions don't work for me.

我现在将如何执行此操作,有人将如何找到要在哪里发出的请求?更清楚地说,如果我要发送登录请求以登录,我将如何知道发送的内容和位置?
我不想使用Instagram的API或Selenium,因为我想试用Requests和(也许)bs4.如果您想要一些代码:

How would I do this now, and how would someone go about finding what requests to make where? To make that clearer, if I were to send a post request to log in, how would I go about knowing what and where to send it?
I don't want to use Instagram's API or Selenium, as I want to try out Requests and (maybe) bs4. In case you'd want some code:

import requests

main_url = 'https://www.instagram.com/'
login_url = main_url+'accounts/login/ajax'
user_agent = 'User-Agent: Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25'

session = requests.session()
session.headers = {"user-agent": user_agent}
session.headers.update({'Referer': main_url})

req = session.get(main_url)
session.headers.update({'set-cookie': req.cookies['csrftoken']})
print(req.status_code)

login_data = {"csrfmiddlewaretoken": req.cookies['csrftoken'], "username": "myusername", "password": "mypassword"}


login = session.post(login_url, data=login_data, allow_redirects=True)
print(login.status_code)
session.headers.update({'set-cookie': login.cookies['csrftoken']})

cookies = login.cookies

print(login.headers)
print(login.status_code)

这给我405错误.

推荐答案

您可以使用此代码登录instagram

you can use this code to login to instagram

import re
import requests
from bs4 import BeautifulSoup

from datetime import datetime

link = 'https://www.instagram.com/accounts/login/'
login_url = 'https://www.instagram.com/accounts/login/ajax/'

time = int(datetime.now().timestamp())

payload = {
    'username': 'login',
    'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{time}:your_password',
    'queryParams': {},
    'optIntoOneTap': 'false'
}

with requests.Session() as s:
    r = s.get(link)
    csrf = re.findall(r"csrf_token\":\"(.*?)\"", r.text)[0]
    r = s.post(login_url, data=payload, headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
        "X-Requested-With": "XMLHttpRequest",
        "Referer": "https://www.instagram.com/accounts/login/",
        "x-csrftoken": csrf
    })
    print(r.status_code)

这篇关于我将如何使用BeautifulSoup4和Requests登录到Instagram,以及如何自行确定它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆