【发布时间】:2020-04-02 00:23:39
【问题描述】:
对于谷歌 URL,例如。 https://www.google.com/search?q=some+query&oq=some+query&aqs=chrome..69i57j0l5.2991j0j9&sourceid=chrome&ie=UTF-8
我需要抓取搜索引擎 (google.com) 任何查询(一些,查询) 以及所有选项(oq、aqs、sourceid 和 ie)
我假设我需要在搜索引擎的两个反斜杠之间找到字符。 但是,当有无数个查询并且我无法在要查找的字符串中定义星号和结尾时,我将如何找到每个查询?选项也是如此。
任何帮助将不胜感激。
【问题讨论】:
-
请务必添加您需要帮助的语言。在您的问题中标记它会更好!了解您已经尝试过的内容会有所帮助。
-
我建议使用能够解析 URL 的现有库,而不是尝试从头开始并可能不得不处理大量边缘情况。
-
在您最喜欢的 C++ 参考中查找
std::string::find方法。还要寻找“std::string::substr` 方法。 -
第一个未转义的
:之前的所有内容都是方案,:之后直到第一个未转义的?是由未转义的/分隔的主机和路径。从?到未转义的#之后的所有内容都是查询字符串,它通常包含<name>=<value>对,由未转义的&字符分隔。#之后的所有内容都是一个片段。有关正式语法,请参阅 RFC 3986。拆分您显示的 URL 将为您提供以下组件:httpswww.google.com/searchq=some+queryoq=some+queryaqs=chrome..sourceid=chromeie=UTF-8