使用 XSoup 解析查询时出错

问题描述 投票:0回答:1

我正在尝试使用 xsoup 解析 html 页面。 这是我的代码:

Document doc = Jsoup.connect("http://appsvr.mardelplata.gob.ar/Consultas07/OrdenesDeCompra/OC/index.asp?fmANIO_CON=2015&fmJURISDICCION_CON=1110200000&fmTIPOCONT_CON=--&fmNRO_OC=&Consultar=Consultar").get();
List<String> filasFiltradas = Xsoup.compile("//div[@id='listado_solicitudes'][//tr[@bgcolor='#EFF5FE'  or @bgcolor='#DDEEFF'] | //div[@class='subtitle']]").evaluate(doc).list();

我使用 Chrome 的“Xpath Helper”扩展测试了 xpath 代码,它运行得很好,但是当我运行代码时,它会抛出此错误:

Exception in thread "main" org.jsoup.select.Selector$SelectorParseException: Could not parse query 'div[@id='listado_solicitudes'][//tr[@bgcolor='#EFF5FE'  or @bgcolor='#DDEEFF'] | //div[@class='subtitle']]': unexpected token at '//tr[@bgcolor='#EFF5FE'  or @bgcolor='#DDEEFF'] | //div[@class='subtitle']'
at us.codecraft.xsoup.xevaluator.XPathParser.consumePredicates(XPathParser.java:237)
at us.codecraft.xsoup.xevaluator.XPathParser.findElements(XPathParser.java:167)
at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:80)
at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:412)
at us.codecraft.xsoup.xevaluator.XPathParser.combinator(XPathParser.java:114)
at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:78)
at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:412)
at us.codecraft.xsoup.Xsoup.compile(Xsoup.java:25)
at seminario.Seminario.main(Seminario.java:19)
java web-scraping xpath jsoup xsoup
1个回答
0
投票

xpath 对我来说没问题。这可能是 XSoup 中的一个错误。

或者,您可以将 xpath 转换为 CSS 选择器。

div#listado_solicitudes tr[bgcolor~=#(EFF5FE|DDEEFF)],
div#listado_solicitudes div.subtitle

示例代码

Elements divs = doc
            .select("div#listado_solicitudes tr[bgcolor~=#(EFF5FE|DDEEFF)], div#listado_solicitudes div.subtitle");
final List<String> filasFiltradas = new ArrayList<>();
for (Element div : divs) {
   filasFiltradas.add(div.text());
}

System.out.println(filasFiltradas);

输出

[  
   DEFENSORIA DEL PUEBLO,
   490 23/4/2015 $21.945,00 GRUPO NUCLEO S.A. Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE POR PARTE DEL PROVEEDOR (Libre de todo gasto adicional y en el destino indicado) // Registrada,
   489 23/4/2015 $4.476,00 GUERRERO PABLO MATIAS Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE POR PARTE DEL PROVEEDOR (Libre de todo gasto adicional y en el destino indicado) // Registrada,
   H.C.D.,
   1890 19/11/2015 $76.800,00 TELEFONICA DE ARGENTINA S.A Concurso de precios Expte.10034 Dig.4 Año 2015. Cpo.1 Concurso de Precios 98/15 SEGUNDO LLAMADO . Contratacion Servicio de Enlace de Telecomunicaciones con Destino HCD. Período del contrato: desde el 1 de Diciembre de 2015 y por el término de 12 meses. Registrada,
   1217 29/7/2015 $2.618,00 GRUPO NUCLEO S.A. Concurso de precios Exp. 1789 Dig 9 Año 2015 Cpo.1 Concurso de Precios Nº 25/15 segundo llamado."Adquisicion de Cartuchos Toner". Registrada,
   747 27/5/2015 $11.911,92 TELEFONICA DE ARGENTINA S.A Concurso de precios Expediente 17-1-2014 Cpo. 1 Alc.1 Prórroga Concurso de Precios Nro. 92/13. Período: desde el 1ero. de Mayo y hasta el 31 de Julio de 2015, inclusive. Registrada,
   1116 13/7/2015 $34.100,00 MDP SISTEMAS DIGITALES S.R.L. Concurso de precios Expte.4566.Dig 7 . Año 2015. Cpo.1.Garantía mínima del producto: seis (6) meses. Registrada,
   750 27/5/2015 $20.892,00 PRIMERA RED INTERACTIVA DE MEDIOS ARGENTINOS (PRIMA) S.A. Concurso de precios Expte. 2470-9-15. Concurso de Precios Nº36/15. Periodo de Contratacion : 12 meses a contar desde la recepcion definitiva de los trabajos. Registrada,
   905 15/6/2015 $40.250,00 DISTRIBUIDORA ARIES S R L Concurso de precios Expte. nº 2929 Díg.2 Año 2015 Cpo. 1 - Concurso de precios nº 38/15 Registrada, 906 15/6/2015 $6.614,00 DISTRIBUIDORA MAYORISTA EN LIBRERIA S.A Concurso de precios Expte. nº 2929 Díg.2 Año 2015 Cpo. 1 - Concurso de precios nº 38/15 Registrada, 602 6/5/2015 $32.190,00 DISTRIBUIDORA ARIES S R L Concurso de precios Adjudicación conforme Decreto Nº 129/15 del HCD y su correspondiente Decreto modificatorio Nº 134/15 Registrada,
   361 1/4/2015 $50.400,00 HIRSCH EDUARDO JOSE Concurso de precios Expte.16316 Dig.6 Cpo.1 Año 2014. Periodo comprendido entre el 1 de abril de 2015 y el 31 de marzo de 2016 Registrada, 1187 23/7/2015 $26.640,00 BUSTOS GUSTAVO LUIS DOMINGO Licitación Privada Expediente Nro. 16575-0-13 Cpo.1 Alc.1. PRORROGA LICITACIÓN PRIVADA 70/2013 - PERIODO DE LA CONTRATACIÓN: DESDE EL 01 DE JULIO Y HASTA EL 30 DE SEPTIEMBRE DE 2015, INCLUSIVE. Registrada,
   1944 1/12/2015 $15.000,00 AMUNDARAIN MARCELO GERARDO Compra Directa PERIODO DE LA CONTRATACION DESDE EL 1º AL 31 DE DICIEMBRE DE 2015 Registrada, 1909 24/11/2015 $3.970,64 TELEFONICA DE ARGENTINA S.A Compra Directa PERIODO DE LA CONTRATACIÓN : NOVIEMBRE 2015 . Registrada,
   1482 11/9/2015 $11.911,92 TELEFONICA DE ARGENTINA S.A Compra Directa PERIODO DE LA CONTRATACIÓN: DEL 1º DE AGOSTO AL 31 DE OCTUBRE DE 2015 - PAGO PARCIAL MENSUAL SEGÚN RENDICIÓN Registrada,
   788 1/6/2015 $8.179,60 EDITORIAL LA PAGINA SA Compra Directa Registrada,
   730 22/5/2015 $33.097,60 EDITORIAL LA CAPITAL SOCIEDAD ANONIMA Compra Directa Registrada, 450 20/4/2015 $2.200,00 HIRSCH EDUARDO JOSE Compra Directa FECHA: 24 DE MARZO DE 2015 - ACTO CONMEMORATIVO POR EL DÍA NACIONAL DE LA MEMORIA POR LA VERDAD Y LA JUSTICIA A LLEVARSE A CABO EL 24 DE MARZO DE 2015 Registrada, 315 20/3/2015 $7.200,00 HIRSCH EDUARDO JOSE Compra Directa Periodo: Enero, Febrero y Marzo de 2015- Pago mensual. Registrada, 80 9/2/2015 $10.714,40 EDITORIAL LA CAPITAL SOCIEDAD ANONIMA Compra Directa Varios Proveedores Registrada,
   449 20/4/2015 $6.600,30 O A C I S. A. Compra Directa Varios Proveedores Registrada,
   374 7/4/2015 $5.000,50 ROJAS CARLOS MARCELO Compra Directa Varios Proveedores Registrada, 451 20/4/2015 $29.750,00 BERARD PABLO CESAR Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE POR PARTE DEL PROVEEDOR (Libre de todo gasto adicional y en el destino indicado) // Registrada,
   507 27/4/2015 $1.153,80 DISTRIBUIDORA MAYORISTA EN LIBRERIA S.A Compra Directa Varios Proveedores ARGA, DESCARGA Y FLETE A CARGO DEL TODO GASTO ADICIONAL. Registrada,
   508 27/4/2015 $4.916,60 DISTRIBUIDORA ARIES S R L Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE A CARGO DEL PROVEEDOR, LIBRE DE TODO GASTO ADICIONAL. Registrada, 623 11/5/2015 $347,00 HENNING JUAN FEDERICO Compra Directa Varios Proveedores Registrada,
   622 11/5/2015 $8.455,00 LIMPA SOCIEDAD ANONIMA Compra Directa Varios Proveedores Registrada, 1901 20/11/2015 $3.320,00 CISNEROS GRACIELA SILVIA Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE POR PARTE DEL PROVEEDOR (Libre de todo gasto adicional y en el destino indicado) // Registrada, 1861 17/11/2015 $20.940,00 LUIS JOSE SIMIONATO SOCIEDAD ANONIMA Compra Directa Varios Proveedores El adjudicatario deberá presentar muestra de impresión - Registrada,
   1600 23/9/2015 $30.000,00 AMUNDARAIN MARCELO GERARDO Compra Directa Varios Proveedores CON PAGO PARCIAL MENSUAL SEGUN RENDICIÓN- PERIODO DE LA CONTRATACIÓN DESDE EL 1º DE OCTUBRE AL 30 DE NOVIEMBRE DE 2015 . SE ADJUNTA ESPECIFICACIONES DE SERVICIO DE FOTOCOPIADO Registrada,
   1602 23/9/2015 $2.850,00 BERARD PABLO CESAR Compra Directa Varios Proveedores Registrada, 1601 23/9/2015 $4.500,00 CAVALLE ROBERTO SANTIAGO Compra Directa Varios Proveedores DEBEN ESTAR REALIZADAS Y ENTREGADAS ANTES DEL 1º DE DICIEMBRE DE 2015 Y LA NÓMINA SERÁ PROVISTA POR EL H.C.D Registrada,
   1453 8/9/2015 $2.750,00 ARMEDENHO HUGO ALBERTO Compra Directa Varios Proveedores DEBERA PRESENTAR PARA SU APROBACION, PRUEBA DE IMPRESION Y CALIDAD DEL PAPEL. COORDINAR LA MISMA AL 4996252, SRA. NORMA VILCHES. ARCHIVO DIGITAL ESTÁ A DISPOSICIÓN EN EL H.C.D. Registrada, 1313 14/8/2015 $5.500,00 LUIS JOSE SIMIONATO SOCIEDAD ANONIMA Compra Directa Varios Proveedores DEBERA PRESENTAR PRUEBA DE IMPRESIÓN Y PAPEL EN EL H.C.D Registrada, 
   1036 30/6/2015 $3.897,00 AUDIO & VISION SONIDO E ILUMINACION S.R.L. Compra Directa Varios Proveedores CARGA, DESCARGA Y FLETE POR PARTE DEL PROVEEDOR (Libre de todo gasto adicional y en el destino indicado) // Registrada
]
© www.soinside.com 2019 - 2024. All rights reserved.