问题3069--CJJJ 的白给抓取机

3069: CJJJ 的白给抓取机

时间限制: 1Sec 内存限制:128 MB
提交:25 解决:4
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述
CJJJ 现在用爬虫四处爬别人的网站,并且完全忽略 robot.txt,然而她把 HTML 内容爬取下来后却不知道怎么处理,现在请你帮她从中找出指定 ID 的标签的 content
HTML 是一个超文本标记语言,每个标签由一个开始标记和一个结束标记构成,部分标签是自闭合的(即没有结束标记,它不能包含任何 content)。
对于非自闭合标签,书写格式为“<[tag-name] [attributes]>[content]”,其中方括号括起来的表示变量,“tagName”是标签名称、“attributes”是属性、“content”是标签的 content、“”是开始标记、“是结束标记。
对于自闭合标签,书写格式为“<[tag-name]/>”,结尾的“/”可有可无。
attribute 的写法非常简:“key="value"”,特别的,如果希望用“value”表示布尔类型,可以写为“key=true”或“key=false”,也可以直接用“key”来表示布尔真。
HTML 中的注释以“”结束,注释效果等价于 C 中的 `/* */`。
例如:
这是一个外部标签

这是一个内部标签


HTML 中可以给标签添加“id”,id 在属性中给出,“key”为“id”,上面的例子中我们就声明了一个 id 为“rich”的标签。
输入
首先输入一行,包含一个字符串,表示要提取的标签的 ID。
然后输入任意行(输入至少包含一个非空字符),表 示一个 HTML 的内容,以 EOF 结束。
输入的 HTML 中仅有如下标签是自闭合标签:“br”“ hr”“img”“input”“li nk”“me ta”“area”,任何标签名称只可能包含小写英文字母、阿拉伯数字、连字符(-)。
输入保证满足以下条件:
  • 标签名和“<”“>”“
  • attribute 的形式为“[key]=[value]”,等号左右没有空格
  • attribute 的 value 中不会出现“<”和“>”
  • content 中“<”和“>”不会以文本的形式出现
  • 每一行长度的长度不会超过 1000
  • 指定 ID 的标签的 content 的长度不会超过 3000
  • 任意一个标签名的长度不会超过 10
  • 起始标签一定在一行中,不会拆成多行
  • 结束标签一定在一行中,不会拆成多行
  • ”“”中不会包含空格
  • 输入不包含“DOCTYPE”之类题干中没有提到的语句
  • 每个标签的属性不会重复
输出
输出对应标签的 content,content 从标签的第一个非换行符的字符开始。
输出时按如下顺序输出结果:
  1. 若输入的 HTML 格式错误则输出“duo lao a cjmm”
  2. 若指定标签不存在则输出“duo lao a cjjj”
  3. 若指定标签没有 content 或 content 为空(仅有空白字符也算为空,空白字符包括空格、制表符、换行符)则输出“QAQ”
当且仅当以下情况出现时当作格式错误,题目保证不会出现其它任何错误:
  • 非自闭合标签缺少闭合标签
  • 闭合标签缺少开始标签
  • 自闭合标签添加了闭合标签
判题时忽略行尾空格和最后一行结尾的换行符。
样例输入 Copy
rich 
这是一个外部标签

这是一个内部标签

样例输出 Copy
这是一个外部标签 

这是一个内部标签

提示

样例输入2

test 
asdfasdf

样例输出2

duo lao a cjmm

样例解释

每个标签必须在其父标签结束前结束,这里在 body 结束时 div 未结束,所以 div 视为缺少结束标记。

友情提示

id 区分大小写。

来源/分类