<input type="text" id="ruc" /> <button id="btnConsulta" class="boton">Consultar</button>
servidor({ url: "obtenerInformacionRuc202412", data: fd }).then((data) => {
function servidor({ metodo = "post", url = null, data = null, responsetype = "text" } = {}) {
using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using System.Web.UI.WebControls;
namespace PracticaJavascriptAPI.Controllers
{
public class WebScrapingController : Controller
{
public ActionResult ConsultaRuc()
{
return View();
}
public async Task<string> obtenerInformacionRuc202412(string ruc)
{
string token = "2222";
string rpta = "";
using (HttpClient cliente = new HttpClient())
{
var pairs = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("accion", "consPorRuc"),
new KeyValuePair<string, string>("razSoc", ""),
new KeyValuePair<string, string>("nroRuc", ruc),
new KeyValuePair<string, string>("nrodoc", ""),
new KeyValuePair<string, string>("token", token),
new KeyValuePair<string, string>("contexto", "ti-it"),
new KeyValuePair<string, string>("modo", "1"),
new KeyValuePair<string, string>("rbtnTipo", "1"),
new KeyValuePair<string, string>("search1", ruc),
new KeyValuePair<string, string>("tipdoc", "1"),
new KeyValuePair<string, string>("search2", ""),
new KeyValuePair<string, string>("search3", ""),
new KeyValuePair<string, string>("codigo", ""),
};
var content = new FormUrlEncodedContent(pairs);
string url = "https://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias";
HttpResponseMessage resultado = await cliente.PostAsync(url, content);
if (resultado.IsSuccessStatusCode)
{
rpta = await resultado.Content.ReadAsStringAsync();
Dictionary<string, object> dtRuc = new Dictionary<string, object>();
List<string> DataRuc = new List<string>();
string html = rpta.Replace("\t", "").Replace("\r\n", "");// await result.Content.ReadAsStringAsync();
string[] filas = html.Split(new String[] { "list-group-item\"", "list-group-item-success\"" }, StringSplitOptions.None);
int n = filas.Length;
int posClave = -1, posValor = -1, posMayor = -1, posMenor = -1;
string fila, clave, valor;
for (int i = 0; i < n; i++)
{
fila = filas[i];
posClave = fila.IndexOf("list-group-item-heading");
if (posClave > -1)
{
posMayor = fila.IndexOf(">", posClave);
if (posMayor > -1)
{
posMenor = fila.IndexOf("<", posMayor);
clave = fila.Substring(posMayor + 1, (posMenor - posMayor) - 1);
if (i <= 1)
{
posClave = fila.IndexOf("list-group-item-heading", posMenor);
}
else
{
posClave = fila.IndexOf("list-group-item-text", posMenor);
}
if (posClave > -1)
{
posMayor = fila.IndexOf(">", posClave);
posMenor = fila.IndexOf("<", posMayor);
valor = fila.Substring(posMayor + 1, (posMenor - posMayor) - 1);
DataRuc.Add(clave + "|" + valor);
dtRuc.Add(clave.Replace(":", "").Replace(" ", "_"), valor);
posClave = fila.IndexOf("list-group-item-heading", posMenor);
if (posClave > -1)
{
posMayor = fila.IndexOf(">", posClave);
if (posMayor > -1)
{
posMenor = fila.IndexOf("<", posMayor);
clave = fila.Substring(posMayor + 1, (posMenor - posMayor) - 1);
posClave = fila.IndexOf("list-group-item-text", posMenor);
posMayor = fila.IndexOf(">", posClave);
posMenor = fila.IndexOf("<", posMayor);
valor = fila.Substring(posMayor + 1, (posMenor - posMayor) - 1);
DataRuc.Add(clave + "|" + valor);
dtRuc.Add(clave.Replace(":", "").Replace(" ", "_"), valor);
if (clave.Equals("Fecha de Inicio de Actividades"))
{
}
}
}
}
else
{
posClave = fila.IndexOf("tblResultado", posMenor);
if (posClave > -1)
{
string htmlTabla = fila.Substring(posClave, (fila.Length - posClave));
List<string> detalle = new List<string>();
string[] trs = htmlTabla.Split(new String[] { "<tr>" }, StringSplitOptions.None);
int ntr = trs.Length;
int postd = -1, postdd = -1;
for (int j = 0; j < ntr; j++)
{
postd = trs[j].IndexOf("<td>");
if (postd > -1)
{
postdd = trs[j].IndexOf("<", postd + 1);
detalle.Add(trs[j].Substring(postd + 4, (postdd - (postd + 4))));
}
}
valor = string.Join(",", detalle);
DataRuc.Add(clave + "|" + valor);
dtRuc.Add(clave.Replace(":", "").Replace(" ", "_"), valor.Split(','));
}
}
}
}
}
//rpta = String.Join("¬", DataRuc);
rpta = new JavaScriptSerializer().Serialize(dtRuc);
}
}
return rpta;
}
}
}
Comentarios
Publicar un comentario