Как я могу использовать libcurl для построчного анализа веб-страницы? - PullRequest
1 голос
/ 07 мая 2011

Хорошо, я создаю эту программу на C для системы Linux.Мне нужно иметь возможность извлекать содержимое URL-адреса, а затем читать его построчно, чтобы я мог выполнить свой собственный синтаксический анализ.

Теперь для меня очень важна скорость, то естьЯ действительно хотел бы сделать это, не сохраняя все это в файл, а затем читая файл (поскольку, например, в первой строке файла может быть содержимое, что означает, что мне не нужно читать остальную частьэто).

Также очень важно, что это потокобезопасный.Я попытался использовать код здесь: http://curl.haxx.se/libcurl/c/fopen.html, но он использует глобальные переменные, которые делают невозможным безопасное многопоточность.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Примеры только это: примеры.Если они работают немного не так, то исправьте это, чтобы работать лучше.

Я думаю, что вам лучше начать с другого примера, возможно, с этого getinemory.c:

http://curl.haxx.se/libcurl/c/getinmemory.html

libcurl доставляет данные «чанк за чанк», а не построчно, поэтому вашему приложению необходимо выяснить, когда у вас достаточно данных, и вы можете затем сказать libcurl, что нужно прекратить передачу.

0 голосов
/ 07 мая 2011

Если вы просто хотите получить данные для страницы, довольно просто использовать API сокетов напрямую.Есть также немало библиотек, которые делают его еще проще.К сожалению, вы еще не сказали, для какой системы это нужно, поэтому трудно порекомендовать, какую библиотеку вы, вероятно, хотите (Windows требует немного специального кода для запуска / выключения Winsock, который не нужен и не будет компилироваться или ссылаться на него).почти любая другая система).

...