C :如何将多个URL从网站HTML提取到向量
C++: How to extract multiple URLs from website HTML into a vector?
我的问题是,我在std::string
内有一个网站的HTML主体,现在我将所有内部的URL提取到std::vector< std::string >
中。我知道如何使用Regex检查字符串是否为URL,但我不知道如何将所有URL提取到std::vector
中。
有人可以将我指向正确的方向吗?
要从HTML文档中提取数据,您需要解析HTML。HTML规范描述了HTML的语法(请注意,HTML也有较旧的版本,因此请务必根据编写HTML文档的版本来解析(。该规范有一个非常有用的部分,标题为解析HTML文档,这与编写解析器非常相关。
解析HTML文档的结果应为文档对象模型树。您可以穿越这棵树以找到您要寻找的URL。
因此,在尝试手工处理时,请始终使用良好的标记读取器(例如boost属性树(。
但是假设您已经开发了用于解析HTML的子弹式正则判处。因为我们不希望嫉妒来自其他受害者,他们试图通过Regex穿越Markup语言处理的危险雷区;我们只会致电您的正则言论:regex re
,我们会说是1 st 捕获是您要在此vector
中存储的URL。
使用如此传奇的正则义务,您唯一需要的另一件事是regex_token_iterator
。鉴于进程的输入是,const sting text
您可以简单地执行此操作:
vector<string> foo { sregex_token_iterator(cbegin(text), cend(text), re, 1), sregex_token_iterator() }
相关文章:
- 如何使用url确定网站协议
- 简单的 HTML 验证器
- 如何从网站获取数据并将其传输到数据库?
- 如何在 html 页面中插入 cgi 应用程序的输出?
- 网站和C++程序在同一台 Linux PC 上的通信
- 在 C++ 中编写解析器来解析给定的 HTML 实体
- 从网站复制证书,并使用脚本将其添加到受信任的根证书颁发机构
- 使用 ReadTheOrg 将识字程序导出为 HTML 时保留源块的内容
- 当我使用 QDomDocument 解析 html 数据时,如何保留 "?
- 如何使用 libcurl 在本地 IP 上获取 HTML?
- 通过 c++ 中的套接字发送 html
- 如何使用utf-8编码在Qt5 WebEngineView中加载HTML页面?
- 谷歌浏览器在访问网站时发送第二个 0 长度的请求?
- C++ libcurl - 无法从 URL 检索整个 html 内容
- C :如何将多个URL从网站HTML提取到向量
- 获取网站的HTML
- 如何将HTML表单发送到网站进行登录,并使用c++下载网页(使用WinHTTP API)
- 发送数据到html网站嵌入在QT gui使用Qwebview
- c++显示HTML代码作为一个网站(CGI程序)
- Dlib HTTP服务器显示网站为纯HTML,没有javascript/css