【发布时间】:2014-04-15 08:47:41
【问题描述】:
伙计们! 我正在寻找解析服务器响应 HTML 和 XML 内容的最佳和有效方法。响应来自我需要每 5 分钟轮询一次的服务器(目前列表中大约有六千个,但很快就会翻倍)。响应存储在缓冲区中的平面文本(从套接字获取)。所以,我需要解析 HTML 部分,如果成功(找到强制性的东西),我应该尝试解析 XML 部分并获取统计信息以存储在 DB 中。回复是这样的:
HTTP/1.0 200 OK
Connection: close
Content-Length: 682
Content-Type: text/xml; charset=utf-8
Date: Sun, 09 Mar 2014 15:44:52 GMT
Last-Modified: Sun, 09 Mar 2014 15:44:52 GMT
Server: DrWebAV-DeskServer/REL-610-AV-6.02.0.201311040 Linux/x86_64 Lua/5.1.4 OpenSSL/1.0.0e
<?xml version="1.0" encoding="utf-8"?><avdesk-xml-api API='2.1.0' API_BUILD='20130709' branch='REL-610-AV' oper='get-server-info' rc='true' timestamp='20140309154452987' version='6.02.0.201311040'><server><id>00c1d140-d21d-b211-a828-b62919c4250d</id><platform>Linux 2.6.39-gentoo-r3 x86_64 (4 SMP Mon Oct 24 11:04:40 YEKT 2011)</platform><version>6.02.0.201311040</version><statistics from='20140301000000000' till='20140309235959999'><noviruses/><stations total='101'><online>5</online><deinstalled>21</deinstalled><blocked>0</blocked><expired>81</expired><offline>96</offline><activated>74</activated><unactivated>27</unactivated></stations></statistics></server></avdesk-xml-api>
而且可能是smth。像这样
HTTP/1.0 401 Authorization Required
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Length: 421
Content-Type: text/html; charset=utf-8
Date: Sun, 09 Mar 2014 15:44:22 GMT
Expires: Date: Sat, 27 Nov 2004 10:18:15 GMT
Last-Modified: Date: Sat, 27 Nov 2004 10:18:15 GMT
Pragma: no-cahe
Server: DrWebAV-DeskServer/REL-610-AV-6.02.0.201311040 Linux/x86_64 Lua/5.1.4 OpenSSL/1.0.1
WWW-Authenticate: Basic realm="Dr.Web XML API area"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><TITLE>Unauthorized</TITLE><BODY><STRONG>Unauthorized</STRONG><P>The error "401 Unauthorized" occured while processing request you had sent.<P><BR><BR><I>Access denied or your browser does not support HTTP authentication!</I><BR><P><BR><BR><HR><P>Dr.Web ® AV-Desk Server REL-610-AV 6.02.0.201311040 Linux/x86_64 Lua/5.1.4 OpenSSL/1.0.1</BODY></HTML>
关于 HTML 部分,我基本上对 HTTP/1.0 STRING 和 Server: STRING 的东西感兴趣,如果授权成功,则需要每个标签的 XML 解析。 我发现,libxml2 适用于解析 HTML/XML 的东西,但找不到任何如何使用它的真实示例,只是一些主要的接口描述。所以,需要帮助。
【问题讨论】:
-
“libxml2 html”的网络搜索快速找到 libxml2 的文章/手册。你需要那些没有给你的东西?
-
用 C 解析 HTML 响应就像用鲱鱼在森林里砍树。