【问题标题】:How to get the last table from this site?如何从该站点获取最后一张桌子?
【发布时间】:2020-02-09 00:30:30
【问题描述】:

我正在尝试使用 python 从 site 获取最后一个表。您可以在下面找到我的实际尝试。

该表被命名为“Dados Colocação, nos Termos do Anexo VII da Instrução CVM nº 400, de 2003”。

lin_cvm_oferta = 'http://web.cvm.gov.br/app/esforcosrestritos/#/enviarFormularioEncerramento?type=dmlldw%3D%3D&ofertaId=MTE3NDE%3D&state=eyJhbm8iOiJNakF4T0E9PSIsInZhbG9yIjoiTVRVPSIsImNvbXVuaWNhZG8iOiJNUT09Iiwic2l0dWFjYW8iOiJNZz09In0%3D'
html = requests.get(lin_cvm_oferta).text
print(html)

当我打印 html 时,它没有得到任何数据。

我已经与 Json 作为我的朋友 @JackFleeting 获得的表格的第一部分帮助我解决了另一个问题 (here)。 PS:我知道有类似的解决方案here。但我不想使用 Selenium。

【问题讨论】:

    标签: python json web-scraping ng-view


    【解决方案1】:

    这与您之前的问题不同 - 该页面使用post,而不是get 方法。你必须使用浏览器中的 developer/network/xhr 工具来提取 url 和 payload,然后像这样发布:

    import requests      
    import json  
    
    url = 'http://web.cvm.gov.br/app/esforcosrestritos/comunicado/getUltimoComunicado'
    
    payload = {"id":931,"dataInclusao":"2016-05-20T09:26:00Z", "dataInicio":"2016-05-18T00:00:00Z","dataEnceramento":"2016-07-05T00:00:00Z", "numeroEmissao":1,"quantidadeSerie":140,"valorMobiliario":{"id":11,
        "dataInclusao":"2015-12-01T00:00:00Z",
        "descricao":"CERTIFICADOS DE RECEBÍVEIS IMOBILIÁRIOS - CRI",
        "relacionadoFundoInvestimento":False,"situacao":"ATIVO"},
        "tipoEspecie":{"id":3,"descricao":"Sem Preferência"},
        "tipoClasse":{"id":4,"descricao":"Não Aplicável"},
        "tipoOferta":{"id":1,"descricao":"Primária"},"tipoForma":{"id":3,"descricao":"Nominativa e Escritural"},"ofertante":{"id":1860,"nomeResponsavel":"RB CAPITAL COMPANHIA DE SECURITIZAÇÃO","cnpj":2773542000122,"paginaWeb":"http://www.rbcapital.com/","tipoSocietario":{"id":4,"descricao":"Sociedade Anônima de Capital Aberto"}},"emissor":{"id":1859,"nomeResponsavel":"RB CAPITAL COMPANHIA DE SECURITIZAÇÃO","cnpj":2773542000122,"paginaWeb":"http://www.rbcapital.com/","tipoSocietario":{"id":4,"descricao":"Sociedade Anônima de Capital Aberto"}},"lider":{"id":931,"nrPfPj":17298092000130,"dataRegistro":"1998-10-15T00:00:00Z","codigoTipoPessoa":"PJ","codigoTipoParticipante":12},"instituicoesIntermediarias":[{"id":1089,"nrPfPj":59588111000103,"dataRegistro":"1991-08-12T00:00:00Z","codigoTipoPessoa":"PJ","codigoTipoParticipante":12,"denominacaoSocial":"BANCO VOTORANTIM SA"},{"id":1090,"nrPfPj":90400888000142,"dataRegistro":"1990-12-20T00:00:00Z","codigoTipoPessoa":"PJ","codigoTipoParticipante":12,"denominacaoSocial":"BANCO SANTANDER (BRASIL) S.A."}],
                   "valorPrecoUnitario":"1.000,00","inativo":False,
                   "qtdValoresMobiliarios":0,"valorTotalOferta":0,"variasSeries":True}
    
    
    headers = {'content-type': 'application/json'}
    
    resp = requests.post(url, data=json.dumps(payload), headers=headers)    
    data = json.loads(resp.content)
    print(data)
    

    请注意,根据您的 IDE,您可能需要手动将布尔值更改为 TrueFalse(大写,正如我在上面所做的那样),尽管网站的发布请求本身使用小写。

    【讨论】:

    • 我的朋友!这正是我所需要的。 Tks 很多,周末愉快..
    • @FelipeRibeiro - 谢谢你,也一样。
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2012-05-23
    相关资源
    最近更新 更多