Red de conocimiento informático - Computadora portátil - Lenguaje C, ¿cómo operar páginas web?

Lenguaje C, ¿cómo operar páginas web?

En primer lugar, tu idea es muy buena. He querido hacer esto antes. Sin embargo, aquí aprender el lenguaje HTML es definitivamente secundario. Lo principal es aprender el método de análisis, en lugar de dominar el contenido que se analiza, ¿no crees? Si desea utilizar un programa para capturar páginas web y guardarlas automáticamente localmente, debe utilizar la programación de sockets o aprender a utilizar la biblioteca libcurl. Estos conocimientos son mucho más útiles que aprender el lenguaje HTML. no rastrear páginas web. Además, diferentes páginas web tienen contenido diferente y pueden tener reglas diferentes. Por ejemplo, en la URL de ejemplo que me diste, hice clic derecho y verifiqué el código fuente, y no había las llamadas etiquetas lt; tdgt;, lt; estas etiquetas. Entonces, si miras estas etiquetas, vas completamente al revés. El análisis de páginas web, en última instancia, sigue siendo procesamiento y análisis de cadenas. Por lo tanto, si realmente desea aprender, también puede aprender funciones relacionadas con expresiones regulares y procesamiento de cadenas, así como bibliotecas de funciones, como la biblioteca tidy. Las expresiones regulares se utilizan para hacer coincidir un tipo de cadena, lo cual es conveniente para encontrar patrones y fácil de procesar. Si aprende un poco, sabrá lo poderoso y útil que es. Además, las expresiones regulares no tienen nada que ver con el idioma y se pueden usar en cualquier idioma. Vale la pena aprenderlo. No hay funciones relacionadas con expresiones regulares en la biblioteca estándar de C. En términos generales, se utilizan dos bibliotecas de expresiones regulares en C, una es la biblioteca de expresiones regulares POSIX

C y la otra es la expresión regular de Perl. biblioteca PCRE. En comparación, PCRE es más potente y la biblioteca normal POSIX

C es suficiente. A continuación se muestran algunos ejemplos de análisis de páginas web en estos enlaces, aunque no todos están manejados por lenguaje C. Sin embargo, las ideas son las mismas.

Entonces, en última instancia, las expresiones regulares, las bibliotecas de funciones regulares y las funciones de procesamiento de cadenas son la base. Déjame decirte esto primero, espero que te sea útil.

Si tiene alguna pregunta durante el proceso de aprendizaje, no dude en comunicarse :) C#: /blog/static/1059718452009127112226478/ También hay un fragmento de código de lenguaje C aquí,

Es la página web descargada código fuente procesado en texto plano sin etiquetas #include

lt; tidy.hgt; #include

lt; .hgt; #include

lt; errno.hgt; int

main(int

argc,

char

**argv

){const

char*

entrada

=

"lt ;titlegt;Foolt;/titlegt;

Foo!"; TidyBuffer

salida

=

{0}; TidyBuffer

salida

=

{0}; p>

errbuf

=

{0}; int

rc

=

- 1; Bool

ok;

=

tidyCreate();

//

Inicializar

"documento"printf(

"Ordenando:\ts\n",

entrada

ok

=

tidyOptSetBool(

<); p>tdoc,

TidyXhtmlOut,

);

//

Convertir

a

XHTMLif

(

ok

)rc

=

tidySetErrorBuffer(

tdoc,

amp;errbuf

);

//

Capturar

diagnóstico

(

rc

gt;=

)rc

=

tidyParseString(

tdoc,

entrada

);

//

Analizar

el

inputif

(

rc

gt;=

)rc

=

tidyCleanAndRepair(

tdoc

);

//

¡Ordenarlo

!if

p>

(

rc

gt; =

)rc

=

tidyRunDiagnostics(

tdoc

);

//

Kvetchif

(

rc

gt;

1

)

//

Si

error,

forzar

salida.rc

=

(

tidyOptSetBool(tdoc,

TidyForceOutput,

sí)

rc

-1

); si

(

rc

gt;=

)rc

=

tidySaveBuffer(

tdoc,

amp; salida

);

//

Bonita

Printif

(

rc

gt;=

){if

(

rc

gt;

)printf(

"\nDiagnóstico:\n\ns",

errbuf.bp

); >

"\nY

aquí

está

el

resultado:\n\ns",

output.bp

);}elseprintf(

"Un

error grave

(d)

ocurrió.\n",

rc

); tidyBufFree(

amp; salida

); tidyBufFree(

amp; errbuf

); tidyRelease(

tdoc

); p>rc;}