如何使用libcurl逐行解析网页?

时间:2011-05-07 02:23:56

标签: c libcurl

好的,所以我在C系统中为Linux系统构建这个程序。我需要能够检索URL的内容,然后逐行阅读,以便我可以自己进行自定义解析。

现在,对我来说非常重要的是速度,这意味着我真的很喜欢这样做而不将整个事物保存到文件中,然后读取文件(例如,因为可能有第一行的内容该文件意味着我不需要阅读其余内容。)

同样非常重要的是它是线程安全的。我尝试在这里使用代码:http://curl.haxx.se/libcurl/c/fopen.html但它使用的全局变量使得无法安全地进行多线程。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

示例就是:示例。如果他们的工作稍有不妥,那就修好它以便更好地工作。

我猜你最好从另一个例子开始,也许是这个getinemory.c:

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

libcurl提供数据“chunk by chunk”而不是逐行提交,因此你的应用程序需要弄明白你有足够的数据,然后你可以告诉libcurl停止传输。

答案 1 :(得分:0)

如果您只想检索页面的数据,可以直接使用套接字API。周围也有相当多的库使它更容易一些。不幸的是,你还没有说过你想要的系统,所以很难推荐你想要的库(Windows需要一些特殊的代码来启动/关闭Winsock,这是不必要的,不会编译或链接的几乎任何其他系统。)