Listing Page Classifier

From edegan.com
Jump to navigation Jump to search


Project
Listing Page Classifier
Project logo 02.png
Project Information
Has title Listing Page Classifier
Has owner Nancy Yu
Has start date
Has deadline date
Has project status Active
Copyright © 2019 edegan.com. All Rights Reserved.


Summary

The objective of this project is to determine which web page on an incubator's website contains the client company listing.

The project will ultimately use data (incubator names and URLs) identified using the Ecosystem Organization Classifier (perhaps in conjunction with an additional website finder tool, if the Incubator Seed Data source does not contain URLs). Initially, however, we are using accelerator websites taken from the master file from the U.S. Seed Accelerators project.

We are building three tools: a site map generator, a web page screenshot tool, and an image classifier. Then, given an incubator URL, we will find and generate (standardized size) screenshots of every web page on the website, code which page is the client listing page, and use the images and the coding to train our classifier. We currently plan to build the classifier using a convolutional neural network (CNN), as these are particularly effective at image classification.

Current Work

Main Tasks

  1. Build a site map generator: output every internal link of input websites
  2. Build a tool that captures a screenshot of individual web pages
  3. Build a CNN classifier using Python and TensorFlow

Approaches (IN PROGRESS)

Progress Log (updated on 4/15/2019)

Site Map Generator

WebPageTree.png

Intuition:

  • We treat each internal page as a tree node. Each node can have multiple children.
  • Taking the above picture as an example, the homepage is the first tree node that we will be given as an input to our function, and it has 4 children: page 1, page 2, page 3, and page 4
  • Given the above idea, we have built 2 following algorithms to find all internal links of a web page with 2 given user inputs: homepage url and depth

Breadth-First Search (BFS) approach:

we examine all pages(nodes) at the same depth before going down to the next depth.

E:\projects\listing page identifier\Internal_Link\Internal_url_BFS.py

Depth-First Search (DFS) approach:

we visit a page(node)"A" and then all its children on the current path will be visited before we visit A's neighbor node "B".

For example, assuming the furthest depth a user wants to dig in is 2, we will start with our homepage and then examine its first children "page 1", then visiting page 1's children until we meet the maximum depth. Then we move onto homepage's second children "page 2" and visit page 2's children until we reach the maximum depth. Next we visit homepage next children page 3 and so on.

E:\projects\listing page identifier\Internal_Link\Internal_url_DFS.py

Web Page Screenshot Tool (IN PROGRESS)

This tool will take 2 user input: the url and the output file(.png)'s name. It will output a png file that has the full screen shot of a web page (see output file example on the right)

Output File Example
E:\projects\listing page identifier\screen_shot\screen_shot_tool.py

Image Processing

This method would likely rely on a convolutional neural network (CNN) to classify HTML elements present in web page screenshots. Implementation could be achieved by combining the VGG16 model or ResNet architecture with batch normalization to increase accuracy in this context.