Python · BeautifulSoup · Scrapy · Playwright

Custom web scraping
built in Python,
delivered at $99.

Get a clean, production-ready Python web scraping script delivered to your inbox — flat $99, scoped upfront, no hourly billing. From simple page scraping to JS-heavy multi-page crawlers.

BeautifulSoup & Requests
Scrapy pipelines
Playwright for JS sites
CSV / JSON / DB output
scraper.py — 99craft
# Python web scraping — 99Craft
import requests
from bs4 import BeautifulSoup
import pandas as pd

def scrape_page(url):
  resp = requests.get(url, headers=HEADERS)
  soup = BeautifulSoup(resp.text, "html.parser")
  items = soup.select(".product-card")
  return [{
    "name": i.select_one("h2").text,
    "price": i.select_one(".price").text,
    "url": i.find("a")["href"]
  } for i in items]

df = pd.DataFrame(scrape_page(TARGET_URL))
df.to_csv("output.csv", index=False)
# → clean CSV delivered to you

What we scrape

Six common use cases,
one flat price.

Every project is scoped before we start — you know exactly what data you’ll receive and in what format.

🛒

E-commerce price scraping

Extract product names, prices, SKUs, availability, and images from competitor or supplier pages. Delivered as CSV or JSON.

BeautifulSoup · Requests
📍

Listings & directories

Scrape business directories, real estate listings, job boards, or classifieds across single or multiple pages with pagination handling.

Scrapy · Playwright
📰

News & content monitoring

Schedule a crawler to pull article headlines, authors, dates, and body text from target publications into a structured feed.

RSS · BeautifulSoup
🏢

Real estate data

Pull property listings, rental prices, agent details, and geo data from listing pages. Export ready for spreadsheet or database import.

Selenium · Pandas
📊

Lead generation data

Extract contact details, company names, social profiles, and industry tags from publicly visible pages for CRM import.

Requests · CSV output
⚙️

JS-rendered pages

Many modern sites load data via JavaScript after page load. We use Playwright or Selenium to render the full DOM before extracting.

Playwright · Selenium

Python web scraping stack

The right tool for
every scraping job.

We choose the leanest tool that solves your specific problem — no over-engineering, no unnecessary dependencies.

requests HTTP fetching
BeautifulSoup4 HTML parsing
Scrapy large-scale crawling
Playwright JS-heavy pages
Selenium browser automation
pandas data cleaning
lxml fast XML/HTML
httpx async requests
json / csv clean output

How it works

From brief to working
scraper in 3–5 days.

Same staging-first, scope-before-you-pay workflow as all 99Craft projects.

STEP 01

Share your target URL

Tell us which site to scrape, what data fields you need, and your preferred output format (CSV, JSON, or direct to DB).

STEP 02

We scope & confirm

We assess the site structure, confirm the deliverable in writing, and agree the $99 scope before any work starts.

STEP 03

Build & test

We write the Python scraper, test it against the live site, handle pagination and edge cases, and share a sample output for review.

STEP 04

Deliver & hand over

You receive the commented Python script, sample output file, and a short README. Pay only after you’ve approved the sample.

Pricing

Simple, flat-fee scraping.

No hourly rates, no retainers. Scope first — pay after the sample output is approved.

Standard scraper

$99

per scoped project · pay after approval

  • Single site, up to 5 data fields
  • Pagination & multi-page handling
  • CSV or JSON output
  • Commented, readable Python code
  • Sample output for approval
  • 7-day post-delivery support

Common questions

Everything you need
to know about web scraping.

  • Web scraping is the automated extraction of data from websites using code. A Python script fetches the page HTML, parses it to find the data you need (prices, names, addresses, links), and saves it in a structured format like CSV or JSON — all without manual copy-pasting.
  • Python is the industry standard for web scraping because of its powerful libraries (Requests, BeautifulSoup, Scrapy, Playwright), clean syntax, and fast development cycle. Most scraping tasks that would take days in other languages can be built and tested in hours with Python.
  • Yes. For sites that load data dynamically via JavaScript, we use headless browser tools like Playwright or Selenium. These tools render the page exactly as a real browser would — including JS execution — before extracting the data. This works for React, Vue, and Angular-powered pages.
  • You choose: CSV, JSON, Excel (.xlsx), or direct insertion into a database (SQLite, PostgreSQL, MySQL). We also deliver the commented Python script so you can re-run the scraper anytime. All output is reviewed and cleaned before delivery.
  • Scraping publicly available data is generally legal in most jurisdictions, but the specifics depend on the site’s terms of service and local data laws. We only build scrapers for publicly accessible pages and always advise clients to review the target site’s ToS before proceeding. We do not build scrapers that bypass authentication or violate GDPR/CCPA obligations.
  • All delivered scripts include a 7-day support window for fixes if the site structure changes within that period. For longer-term maintenance, ask about our monthly care plan which includes scraper updates whenever the target site changes its layout.

Need data extracted
from a website?

Share the URL, tell us what fields you need, and we’ll reply with a clear scope and sample within 1 business day.