Skip to main content

Simple python library that uses puppeteer to pull HTML from a loaded SPA (REQUIRES NODE, NPM, AND PUPPETEER)

Project description

# JavaSoup - Modern Web Scraping

This library returns the HTML of a Single Page Application (SPA) after the page has loaded. This HTML can then be passed to BeautifulSoup for parsing.

#### !! WARNING: This library requires node, npm, and puppeteer to work !! ##### !! If the method runs and nothing is returned, this is MOST LIKELY the issue !!

##### Install JavaScript Components (on Kali):

sudo apt-get install -y nodejs npm

npm i puppeteer

### Library Overview

The traditional method of web scraping in Python w/ requests and BeautifulSoup isn’t effective for more modern pages and SPAs. This library dynamically generates a JavaScript file that uses puppeteer to fully load the page and return the HTML that is dynamicaly generated in the Document Object Model (DOM).

The primary method, get_soup, accepts a full URL as a string and returns the page’s content as a string.

Typical Workflow (requests/BeautifulSoup):

res = requests.get(‘http://example.com’)

soup = BeautifulSoup(res.text, ‘html.parser’)

New Workflow w/ javasoup:

import javasoup

soup = BeautifulSoup(javasoup.get_soup(‘http://example.com’), ‘html.parser’)

### Execution Process

  1. Creates the necessary JavaScript file in the current working directory (MUST HAVE WRITE PRIVILEGES)

  2. Runs that JavaScript file using the URL provided and stores the value returned

  3. Deletes the temporary JavaScript file

  4. Returns the HTML content

### Install

#### After JavaScript components have been installed, javasoup can be downloaded through pip

pip install javasoup

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

javasoup-0.8.tar.gz (2.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page