File size: 7,769 Bytes
bcf46c3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Puppeteer Alternative — OpticParse AI Web Scraper</title>
  <meta name="description" content="Tired of maintaining brittle Puppeteer scripts? OpticParse is the best Puppeteer alternative. Extract data visually using AI without writing a single CSS selector." />
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap" onload="this.onload=null;this.rel='stylesheet'" />
  <noscript>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap" />
  </noscript>
  <style>
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --bg: #0a0a12; --bg2: #0f0f1a; --bg3: #13131f;
      --border: rgba(255,255,255,0.07); --text: #e8e8f0; --muted: #a1a1aa;
      --purple: #8b5cf6; --purple2: #6d28d9; --cyan: #06b6d4; --cyan2: #0891b2;
    }
    html { scroll-behavior: smooth; }
    body { font-family: 'Inter', sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; overflow-x: hidden; }

    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 1rem 2rem;
      background: rgba(10,10,18,0.85); backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--border);
    }
    .nav-logo { font-weight: 800; font-size: 1.1rem; letter-spacing: -0.5px; }
    .nav-logo span { background: linear-gradient(135deg, var(--purple), var(--cyan)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
    .nav-links { display: flex; gap: 2rem; }
    .nav-links a { color: var(--muted); text-decoration: none; font-size: 0.9rem; font-weight: 500; transition: color .2s; }
    .nav-links a:hover { color: var(--text); }
    .nav-cta { background: linear-gradient(135deg, var(--purple), var(--cyan)); color: #fff; border: none; padding: .5rem 1.2rem; border-radius: 8px; font-weight: 600; font-size: .85rem; cursor: pointer; text-decoration: none; transition: opacity .2s; }
    .nav-cta:hover { opacity: .85; }

    .hero { min-height: 50vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 8rem 2rem 4rem; text-align: center; position: relative; overflow: hidden; }
    .hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(139,92,246,.15), transparent), radial-gradient(ellipse 60% 50% at 80% 80%, rgba(6,182,212,.1), transparent); pointer-events: none; }
    .hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 900; line-height: 1.05; letter-spacing: -2px; margin-bottom: 1.5rem; }
    .hero p { font-size: 1.2rem; color: var(--muted); max-width: 600px; margin-bottom: 2rem; }

    section { padding: 4rem 2rem; max-width: 900px; margin: 0 auto; }
    .section-label { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 1rem; }
    .section-title { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 800; letter-spacing: -1px; line-height: 1.1; margin-bottom: 1.5rem; }
    .content-block { color: var(--text-muted); font-size: 1.1rem; line-height: 1.8; margin-bottom: 2rem; }
    .content-block p { margin-bottom: 1.5rem; color: var(--muted); }
    .feature-list { list-style: none; display: flex; flex-direction: column; gap: .8rem; margin-bottom: 1.5rem; }
    .feature-list li { display: flex; align-items: flex-start; gap: .6rem; font-size: 1.05rem; color: var(--muted); }
    .feature-list li::before { content: '→'; color: var(--cyan); font-weight: 700; flex-shrink: 0; }
    .divider { height: 1px; background: var(--border); margin: 0 2rem; }

    footer { border-top: 1px solid var(--border); padding: 2.5rem 2rem; text-align: center; color: var(--muted); font-size: .85rem; }
    footer a { color: var(--muted); text-decoration: none; }
    footer a:hover { color: var(--text); }
    .footer-links { display: flex; gap: 2rem; justify-content: center; flex-wrap: wrap; margin-bottom: 1rem; }

    @media (max-width: 768px) {
      .nav-links { display: none; }
    }
  </style>
</head>
<body>

<nav>
  <div class="nav-logo"><span>Opticparse</span> & PhishVision</div>
  <div class="nav-links">
    <a href="/">Home</a>
    <a href="/phishvision.html">PhishVision</a>
    <a href="/api-docs.html">Docs</a>
    <a href="/about.html">About Us</a>
  </div>
  <a href="https://dashboard.opticparse.com" target="_blank" class="nav-cta">Start Free →</a>
</nav>

<main>
  <div class="hero">
    <h1>The Best Puppeteer Alternative</h1>
    <p>Stop maintaining brittle Puppeteer scripts. Extract JSON from any website using Vision AI—without touching a single CSS selector.</p>
    <a href="https://dashboard.opticparse.com" class="nav-cta" style="padding: 1rem 2rem; font-size: 1.1rem;">Try OpticParse Free</a>
  </div>

  <section>
    <div class="section-label">Why replace Puppeteer?</div>
    <h2 class="section-title">Puppeteer Scripts Always Break</h2>
    <div class="content-block">
      <p>If you're using Puppeteer to scrape modern websites, you know the pain: you spend hours writing `page.$eval` and traversing complex DOM trees. Then, the website deploys an update. They change a Tailwind class from `mb-4` to `mb-6`, or React hydration shuffles the `div` order.</p>
      <p>Suddenly, your entire scraping pipeline is broken. You get `TimeoutError: waiting for selector` and have to rewrite your script from scratch.</p>
    </div>
  </section>

  <div class="divider"></div>

  <section>
    <div class="section-label">The OpticParse Solution</div>
    <h2 class="section-title">Visual AI Extraction</h2>
    <div class="content-block">
      <p>OpticParse is the ultimate Puppeteer alternative because it ignores the DOM entirely. Here is how it works:</p>
      <ul class="feature-list">
        <li><strong>No Selectors:</strong> We load the URL in a headless browser and take a screenshot.</li>
        <li><strong>AI Vision:</strong> We pass the screenshot and your plain-English prompt to Vision AI (like LLaMA Vision or Gemini).</li>
        <li><strong>Structured JSON:</strong> The AI extracts the exact data you want, returning it as perfectly formatted JSON.</li>
      </ul>
      <p>Even if the website completely redesigns its HTML structure, as long as the data is visible to a human on the screen, OpticParse will extract it perfectly.</p>
    </div>
  </section>

  <div class="divider"></div>

  <section>
    <div class="section-label">Built-in Bot Protection</div>
    <h2 class="section-title">Bypass Cloudflare Automatically</h2>
    <div class="content-block">
      <p>Puppeteer gets blocked by Cloudflare and Datadome instantly unless you install heavily-modified stealth plugins that are constantly being patched.</p>
      <p>OpticParse handles all the browser management, IP rotation, and bot-challenge bypasses for you behind a single REST API call. You just ask for the data.</p>
    </div>
  </section>
</main>

<footer>
  <div class="footer-links">
    <a href="https://dashboard.opticparse.com" target="_blank">Opticparse Dashboard</a>
    <a href="/api-docs.html">API Documentation</a>
    <a href="/about.html">About Us</a>
    <a href="/sitemap.xml">Sitemap</a>
  </div>
  <p>© 2026 OpticParse</p>
</footer>
</body>
</html>