linux下从HTML到c++的关键字提取
Extracting key words from HTML to C++ under linux
我正在做一个简单的客户机-服务器项目。客户端是用Java编写的,它将关键字发送到Linux下编写的c++服务器,并接收最佳排名的url列表(取决于关键字的出现次数)。服务器的工作是遍历一些url来搜索关键字并返回最合适的url。现在的问题是,我必须解析HTML网站,以找到出现的关键字,加上我需要从访问的页面提取链接,以搜索他们。我的问题是,我可以用哪个库来做到这一点?记住只有c++ linux库适合我。有一些类似的主题,所以我试着通过他们中的大多数,但有些库只解析html文件,我不想下载我访问的每个网站,但解析它的飞行,只是存储它的排名和url。其中一些在我看来有点复杂——例如,首先将HTML解析为XML或其他东西,然后最后用c++处理结果。是否有一些简单而足够的东西来完成我需要它做的事情?如有任何建议,不胜感激。
我认为正则表达式不适合HTML解析。我正在使用libxml2,我非常喜欢它——易于使用、可移植且速度极快。
要使用C/c++从web获取url,可以使用libcurl库。要从站点中解析url和其他不太容易的东西,您可以使用regex库。
将HTML标签与实际内容分开也可以不使用库来完成。
对于更高级的东西,可以使用Qt提供的类,如q网页(它使用WebKit),允许访问页面的DOM-Model和提取单个HTML对象(例如单个单元格表)相当容易。
您可以尝试练习-c。它是一个功能强大的xml解析库。它支持动态读取xml, dom和sax解析。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 如何确保C++函数在定义之前声明(如override关键字)
- 如何从 std::atomic 中提取指针 T<T>?
- 为什么istream不支持右值提取
- 如何设置一个范围来提取我想要获得的信息
- 谷歌模拟和覆盖关键字
- 视觉工作室项目.提取源文件夹名称
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 从字符串中提取整数并形成一个数组
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 为什么"delete"关键字不删除节点?
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- 在特定字段中关键字搜索后,从文本文件中提取多个记录
- 仅使用关键字和数字提取来解析简单语法
- linux下从HTML到c++的关键字提取