Hello Programmers, In this post, you will know how to solve the HTML Parser Part 2 in Python HackerRank Solution. This problem is a part of the HackerRank Python Programming Series.

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.
HTML Parser Part 2 in Python HackerRank Solution
problem
This section assumes that you understand the basics discussed in HTML Parser – Part 1
.handle_comment(data)
This method is called when a comment is encountered (e.g. <!–comment–>).
The data argument is the content inside the comment tag:
from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def handle_comment(self, data): print "Comment :", data
.handle_data(data)
This method is called to process arbitrary data (e.g. text nodes and the content of <script>…</script> and <style>…</style>).
The data argument is the text content of HTML.
from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def handle_data(self, data): print "Data :", data
Task :
You are given an HTML code snippet of N lines.
Your task is to print the single-line comments, multi-line comments and the data.
Print the result in the following format:
>>> Single-line Comment Comment >>> Data My Data >>> Multi-line Comment Comment_multiline[0] Comment_multiline[1] >>> Data My Data >>> Single-line Comment:
Note: Do not print data if data == ‘\n’.
Input Format :
The first line contains integer N, the number of lines in the HTML code snippet.
The next N lines contains HTML code.
Constraints :
- 0 < N < 100
Output Format :
Print the single-line comments, multi-line comments and the data in order of their occurrence from top to bottom in the snippet.
Format the answers as explained in the problem statement.
Sample Input :
4 <!--[if IE 9]>IE9-specific content <![endif]--> <div> Welcome to HackerRank</div> <!--[if IE 9]>IE9-specific content<![endif]-->
Sample Output :
>>> Multi-line Comment [if IE 9]>IE9-specific content <![endif] >>> Data Welcome to HackerRank >>> Single-line Comment [if IE 9]>IE9-specific content<![endif]
HTML Parser Part 2 in Python HackerRank Solutions
from html.parser import HTMLParser class MyHTMLParser(HTMLParser): # HTML Parser - Part 2 in Python - Hacker Rank Solution START def handle_comment(self, data): if (len(data.split('\n')) != 1): print(">>> Multi-line Comment") else: print(">>> Single-line Comment") print(data.replace("\r", "\n")) def handle_data(self, data): if data.strip(): print(">>> Data") print(data) # HTML Parser - Part 2 in Python - Hacker Rank Solution END html = "" for i in range(int(input())): html += input().rstrip() html += '\n' parser = MyHTMLParser() parser.feed(html) parser.close()
Disclaimer: The above Problem (HTML Parser Part 2 in python) is generated by Hackerrank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.
Next: Detect HTML Tags Attributes and Attribute Values in Python HackerRank Solution