【问题标题】:Error 500 while webscraping with rvest使用 rvest 进行网页抓取时出现错误 500
【发布时间】:2017-09-14 17:29:15
【问题描述】:

我正在尝试使用以下代码进行网络抓取,但收到以下警告消息:

在 request_POST(session, url = url, body = request$values, encode = request$encode, : 内部服务器错误 (HTTP 500)

我做错了什么?

图书馆(rvest):

sisben <-html_session("https://wssisbenconsulta.sisben.gov.co/dnp_sisbenconsulta/dnp_sisben_consulta.aspx")

form <- html_form(sisben)[[1]]

fillform <- set_values(form,"ddlTipoDocumento" = "Cédula de Ciudadanía", "tboxNumeroDocumento" = "1234")

sis <- submit_form(session=sisben, form=fillform)

【问题讨论】:

    标签: web-scraping rvest


    【解决方案1】:

    您究竟想抓取哪些数据?对我来说,代码看起来就像您与页面交互(填写表单并提交),但我没有看到您用来抓取数据的任何 rvest 代码。

    关于您的错误: 查看 html 源代码,您似乎只提交了“Tipo de Documento”的标签,而不是正确的内部值(编号)

    <option value="-1">Seleccione...</option>
    <option value="1">C&#233;dula de Ciudadan&#237;a</option>
    <option value="3">C&#233;dula de Extranjer&#237;a</option>
    <option selected="selected" value="4">Registro Civil</option>
    <option value="2">Tarjeta de Identidad</option>
    

    使用选项值作为输入时我没有收到错误:

    fillform <- set_values(form,"ddlTipoDocumento" = "1", "tboxNumeroDocumento" = "1234")
    sis <- submit_form(session=sisben, form=fillform)
    

    导致输出:

    使用“tboxNumeroDocumento”提交

    也许这已经是您正在寻找的东西了?

    【讨论】:

    • 谢谢汤姆。这清除了错误。现在我打算使用 sis %>% html_nodes("table") %>% .[[1]] 来提取数据。
    • 这种方法有问题还是行得通?
    • 它不起作用。它不会产生错误,但不是我希望提取的字段。
    • 那么它提取了什么,你打算提取什么?
    • 它提取 NA。我希望提取“Puntaje”(得分)“Fecha de modificacion”(日期),...
    猜你喜欢
    • 2017-03-05
    • 2019-10-11
    • 2018-02-15
    • 2018-10-27
    • 2015-09-06
    相关资源
    最近更新 更多