Artigo: lib cURL - Trabalhe com URLs em C
Autor: André S. Rosa Junior
Data: Ter 07 Dez, 2010.
Obs.: Todo conteúdo aqui presente foi retirado da internet, logo, não ofereço nenhum tipo de suporte ou algo do gênero em relação a problemas ocorridos ao seguir este artigo. Portanto, nem o autor, nem o site se responsabilizam por danos ocorridos ao elaborar o conteúdo aqui visto.
Informações adicionais:
- Compilador utilizado: gcc versão: 4.3.2
- Editor: vi versão: 7.1.314
- Sistema Operacional (OS): Linux
- Distribuição: Debian
A lib cURL pode ser utilizada para transferência de arquivos via URL. A cURL suporta: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET e TFTP.
Poderosa, não ?!
Neste artigo usaremos a a lib cURL como biblioteca de auto-nível para fazermos uma pequena aplicação em C, que tende a baixar o código fonte de uma página e escrevê-lo em um arquivo. Vocês podem ver algo parecido através do comando 'GET'. Sua sintaxe é:
GET 'www.site.com.br'.
Por exemplo:
GET 'www.google.com.br'
Teríamos o código fonte html da 'index' do vivaolinux:
O nosso objetivo nesse artigo é pegar o código fonte de uma página e "copiar" esse código para um arquivo. Você poderia fazer isso usando o GET (ferramenta que acabamos de ver). Poderíamos fazer o seguinte.
Criar o arquivo:
touch file.html
E depois simplesmente "jogar" o source para este arquivo:
GET 'www.vivaolinux.com.br' >> file.html
Nosso propósito será fazer algo parecido com isso.
Então, poderíamos fazer isso de duas formas: do modo fácil ou do modo difícil.
O modo difícil, aliás, difícil é uma palavra feia. Vamos chamar de método "trabalhoso". Estamos falando de sockets, se você quiser dar uma conferida na man-page, é só visitar:
Você acha muita coisa neste link.
Agora, o modo fácil é através da cURL, que é uma biblioteca de alto-nível, que nos permite a comunicação com um site externo (remoto).
Então, na próxima página nós veremos a instalação desta biblioteca, e um exemplo de código.
Referências: