使用请求登录网站时出现问题

时间:2018-06-26 08:08:59

标签: python web-scraping python-requests

我正在尝试登录请求的网站。 该网站来自巴西中央银行。

我的问题是,登录框与我到目前为止找到的教程有所不同。

我可以选择使用“UsuárioSISBACEN”框或“ CPF”框登录(而不是仅一个框)(最后一个CPF是我可以访问的框)。

如何编写代码以登录该网站并获取数据?

我尝试过这个,但是没有成功。它返回错误,就像我忘记从UsuárioSISBACEN框中提供所有四个信息一样,但是我尝试通过CPF框登录:

    #the page I want to try the login
    logurl = "https://bccorreio.bcb.gov.br/bccorreio/Autenticacao/Logon.aspx?ReturnUrl=%2fbccorreio%2f"

    #the page I want to requests information from.
    posturl = "https://bccorreio.bcb.gov.br/bccorreio/Consultas/Normativos/PesquisaNormativos.aspx?tipoConsulta=C"

    with requests.session() as s:
        s.headers = {"User-Agent":"Mozilla/5.0"}
        res = s.get(logurl)

        soup = bs(res.text, "lxml")

        values = {
            "__LASTFOCUS": soup.select_one("[name='__LASTFOCUS']")['value'],
            "__EVENTTARGET": soup.select_one("[name='__EVENTTARGET']")['value'],
            "__EVENTARGUMENT": soup.select_one("[name='__EVENTARGUMENT']")['value'],
            "__VIEWSTATE": soup.select_one("[name='__VIEWSTATE']")['value'],
            "__VIEWSTATEGENERATOR": soup.select_one("[name='__VIEWSTATEGENERATOR']")['value'],
            "lgLogin$rbTipoLogin": "1",
            "lgLogin$UserName": xxxxxx,
            "lgLogin$Password": xxxxx,
            "lgLogin$Login": "Entrar"
        }

        r = s.post(posturl, data=values)
        print(r.text)

有人可以向我解释我在做什么错吗?我认为此“ CPF”框有些问题,我认为我没有正确选择。

希望即使您没有访问此网站也能为我提供帮助。

OBS:Python 3.6 macOS高Sierra

My post requests when I log manually - I deleted log and password from the image

0 个答案:

没有答案