/web-link-tester

Flask App to scrape hrefs from websites and validate links

Primary LanguageHTML

web-link-tester

Docker Automated build

Asynchronous Flask App to scrape and validate links via GUI or REST API

Usage

Why use the web-link-tester?

  1. Test your production site via GUI or programmatically to ensure no bad page routes or forgotten references.
  2. It's free.

To deploy the Web App/API


Docker

docker run -d --name link-tester -p 8080:8080 circa10a/web-link-tester

Access via http://localhost:8080

Python

python main.py

Access via http://localhost:8080

Set environment variable PORT locally to change listening port from 8080

API Usage

curl -X POST -H "content-type: application/json" --data '{"url": "https://www.github.com"}' http://localhost:8080/api

Example JSON Output

$ curl -s -X POST -H "content-type: application/json" --data '{"url": "https://caleblemoine.dev"}' http://localhost:8080/api

{
  "links": [
    {
      "code": 999,
      "url": "https://www.linkedin.com/in/caleblemoine/"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a/express-jwt"
    },
    {
      "code": 200,
      "url": "https://github.com/pyouroboros/ouroboros"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a/filter-object-array"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a/easy-soap-request"
    },
    {
      "code": 200,
      "url": "https://medium.com/better-programming/how-to-perform-soap-requests-with-node-js-4a9627070eb6"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a/web-link-tester"
    },
    {
      "code": 200,
      "url": "https://github.com/circa10a/Device-Monitor-Dashboard"
    },
    {
      "code": 200,
      "url": "https://caleblemoine.dev/monitor/"
    },
    {
      "code": 200,
      "url": "https://hub.docker.com/u/circa10a"
    },
    {
      "code": 200,
      "url": "https://caleblemoine.dev/gitfolio/"
    },
    {
      "code": 999,
      "url": "https://www.linkedin.com/in/caleblemoine/"
    },
  ]
}

Stack

  • Utilizes gunicorn for multiple workers/threading.
  • Python 3
  • BeautifulSoup4
  • Jquery

Screenshots

alt text alt text