chompjsvsnokogiri
chompjs can be used in web scrapping for turning JavaScript objects embedded in pages into valid Python dictionaries.
In web scraping this is particularly useful for parsing Javascript variables like:
python
import chompjs
js = """
var myObj = {
myMethod: function(params) {
// ...
},
myValue: 100
}
"""
chompjs.parse_js_object(js, json_params={'strict': False})
{'myMethod': 'function(params) {\n // ...\n }', 'myValue': 100}
In practice this can be used to extract hidden JSON data like data from <script id=__NEXT_DATA__> elements
from nextjs (and similar) websites. Unlike json.loads command chompjs can ingest json documents that contain
javascript natives like functions making it a super easy way to scrape hidden web data objects.
Nokogiri is a Ruby gem that provides a simple and powerful way to parse and search XML and HTML documents. It is built on top of the underlying C library libxml2, which is known for its speed and reliability.
Nokogiri provides a simple and intuitive API for parsing and searching XML and HTML documents, and it is widely used in the Ruby ecosystem for web scraping and data extraction.
One of the main features of Nokogiri is its ability to search and navigate through XML and HTML documents using a CSS or XPath selectors.
Nokogiri also provides a variety of other features that can simplify the process of working with XML and HTML documents. It can automatically handle character encodings and normalize documents, it can parse and search large documents with low memory usage, and it can validate documents against a DTD or schema.
Highlights
Example Use
Hello World!
This is a sample webpage.
' # Parse the HTML string doc = Nokogiri::HTML(html_string) # Extract the class attribute of h1 tag using CSS selector h1_class = doc.css("h1")[0]['class'] # or XPath h1_class = doc.xpath("//h1")[0]['class'] puts "H1 class: #{h1_class}" ```