Descargar pagina web

Ulmo

Vengo pidiendo ayuda porque llevo un buen rato peleándome intentando descargar una página web sin mucho éxito, he googleado durante un buen rato y no he sido capaz de solucionarlo por mi mismo así que vengo en busca de la sabiduría de MV.

La cuestión es que quiero descargar el contenido de miles de paginas web para después parsearlo pero wget no soporta javascript, por lo que no me descarga el contenido de las tablas. He probado con curl incluso con phantomjs (que no sabía ni que existía y he hecho copy&paste de una de los resultados de google) y nada de nada, no consigo bajar la dichosa información.

¿Tan difícil es descargarlo tal cual lo imprimiría un navegador?

Se que con curl puedo hacer una llamada la función directamente que crea la tabla, pero tras pelearme un rato con el código web, la verdad es que no me aclaro.

Por si queréis exactamente lo que estoy intentando obtener son los campos "Entity ID" y "Case UUID" de esa página web:

https://portal.gdc.cancer.gov/files/0785da49-d379-4c98-871c-ef1b5bfc5f3a

Mi amor eterno a quien me ayude.

Ivan69

edit: no servia

Ulmo

Aclarar que no necesito obtener el valor de esos campos necesariamente, que puede dificultar un poco la llamada, me vale con que se descarguen como parte de todo el contenido web y luego yo ya me las arreglo para parsearlo. Lo comento porque posiblemente es más fácil descargar todo que no solo esos 2 campos.

Ulmo

Actualizo porque Fastestwat me ha contestado por mensaje.

Por algún motivo posiblemente vinculado a la magia negra la api a la que tengo que atacar es:

https: //api.gdc.cancer.gov/v0/files/0785da49-d379-4c98-871c-ef1b5bfc5f3a?expand=metadata_files&fields=state,md5sum,access,data_format,data_type,data_category,file_name,file_size,file_id,platform,experimental_strategy,center.short_name,cases.case_id,cases.project.project_id,cases.samples.sample_type,cases.samples.portions.portion_id,cases.samples.portions.analytes.analyte_id,cases.samples.portions.analytes.aliquots.aliquot_id,annotations.annotation_id,annotations.entity_id,tags,submitter_id,archive.archive_id,archive.submitter_id,archive.revision,associated_entities.entity_id,associated_entities.entity_type,associated_entities.case_id,analysis.analysis_id,analysis.workflow_type,analysis.updated_datetime,analysis.input_files.file_id,analysis.metadata.read_groups.read_group_id,analysis.metadata.read_groups.is_paired_end,analysis.metadata.read_groups.read_length,analysis.metadata.read_groups.library_name,analysis.metadata.read_groups.sequencing_center,analysis.metadata.read_groups.sequencing_date,downstream_analyses.output_files.access,downstream_analyses.output_files.file_id,downstream_analyses.output_files.file_name,downstream_analyses.output_files.data_category,downstream_analyses.output_files.data_type,downstream_analyses.output_files.data_format,downstream_analyses.workflow_type,downstream_analyses.output_files.file_size,index_files.file_id

Lo que no se como demonios se llega a dicha conclusión, yo he estado un buen rato peleándome con la consola Javascript de chrome sin mucho éxito.

De todas formas no necesito saber el cómo lo habéis logrado, con el resultado me doy más que por satisfecho.

Gracias!

W0rd

Necesitas un interprete de javascript, algunos para java:

https://www.teamdev.com/jxbrowser

http://htmlunit.sourceforge.net/

MartiONE

No necesitas ningún interprete de javascript, la api esta abierta y en la tabla de networking de chrome bajo la pestaña de xhr.

1 respuesta
Ulmo

#6 Yep, eso era lo que me fallaba, que no encontraba la dichosa tabla, al filtrar por xhr las opciones se reducen drásticamente y entonces sí resulta más fácil dar con ella.

Gracias!

Usuarios habituales

  • Ulmo
  • MartiONE
  • W0rd
  • Ivan69