The Real Python Podcast· Folge 304

Configuring a Versatile LLM Harness & Scraping the Web With Scrapy

Freitag, 24. Juli 2026 · 58 min

MP3

Shownotes

<p>Which is more important, the model or the “harness” around an LLM? What are ways to assemble an efficient agentic developer workflow? This week on the show, Ayan Pahwa joins us to discuss harnessing, web scraping, and self-hosting Python applications.</p>
<p>Ayan is a developer advocate at Zyte and an experienced project builder. We discuss a recent article he wrote about creating an extension for the web scraping tool Scrapy. He also digs into his self-hosting setup for Python applications and tools.</p>
<p>Our discussion extends to the complexities of developing effective harnesses. Ayan shares his setup and how he navigated shifting from prompt engineering to context and loop engineering.</p>
<p>This episode is sponsored by <a href="hydradb.com/?utm_source=real-python&utm_me…;
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="realpython.com/courses/introduction-to-web-scr… to Web Scraping With Python</a></p>
<p>In this video course, you’ll learn all about web scraping in Python. You’ll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:01 – Scrapy and building an extension</li>
<li>00:08:46 – Zyte and the web scraping API</li>
<li>00:11:19 – Sponsor: HydraDB</li>
<li>00:12:22 – noalgotube project</li>
<li>00:15:49 – Homelab & self hosting projects</li>
<li>00:22:19 – What goes into a harness?</li>
<li>00:32:33 – Where did you start exploring LLM tools?</li>
<li>00:36:13 – Local models & edge computing</li>
<li>00:39:31 – ExtractPod and discussing Apple’s AI</li>
<li>00:43:35 – Video Course Spotlight</li>
<li>00:44:54 – Managing token use and tools</li>
<li>00:52:37 – What are you excited about in the world of Python?</li>
<li>00:55:10 – What do you want to learn next?</li>
<li>00:56:38 – What is the best way to follow your work online?</li>
<li>00:56:58 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="zyte.com/blog/how-to-build-your-first-scrapy-e… to build your first Scrapy extension</a></li>
<li><a href="zyte.com/zyte-api/">Web Scraping API - All-in-one Web Scraper - Zyte API</a></li>
<li><a href="realpython.com/web-scraping-with-scrapy-and-mo… Scraping With Scrapy and MongoDB – Real Python</a></li>
<li><a href="codensolder.com/posts/noalgotube-algorithm-fre…: I Built My Own YouTube Feed Because the Algorithm Stopped Working for Me - CodeNSolder</a></li>
<li><a href="github.com/iayanpahwa/noalgotube">noal…: A personal content aggregator for YouTube channels and blog RSS feeds</a></li>
<li><a href="codensolder.com/posts/why-homelab-building-a-p… homelab? Building a proper self-hosted setup from scratch - CodeNSolder</a></li>
<li><a href="opnsense.org/">OPNsense: Open source, feature rich firewall and routing platform, offering cutting-edge network protection</a></li>
<li><a href="proxmox.com/en/">Proxmox - Powerful open-source server solutions</a></li>
<li><a href="pi-hole.net/">Pi-hole – Network-wide Ad Blocking</a></li>
<li><a href="github.com/iib0011/omni-tools">omni-to…: Self-hosted collection of powerful web-based tools for everyday tasks</a></li>
<li><a href="frigate.video/">Frigate NVR</a></li>
<li><a href="zyte.com/blog/harness-engineering-part-1-what-… Engineering, part 1: What is an agent harness and why it matters</a></li>
<li><a href="zyte.com/blog/my-agentic-coding-setup-claude-c… agentic coding setup: Claude Code, multi-agent orchestration, and how I actually work</a></li>
<li><a href="youtube.com/watch?v=kZP_TumcFAY">Extra… EP07 - AI Harnesses, our model usage and a Scottish dinner staple. - YouTube</a></li>
<li><a href="opencode.ai/">OpenCode - The open source AI coding agent</a></li>
<li><a href="openrouter.ai/">OpenRouter</a>&l…;
<li><a href="deepmind.google/models/gemma/gemma-4/">… 4 — Google DeepMind</a></li>
<li><a href="lmstudio.ai/">LM Studio Bionic - Agent for Open Models</a></li>
<li><a href="z.ai/blog/glm-5.2">GLM-5.2: Built for Long-Horizon Tasks</a></li>
<li><a href="github.com/JuliusBrussee/caveman">cave…: 🪨 why use many token when few token do trick — Claude Code skill</a></li>
<li><a href="github.com/DietrichGebert/ponytail">po…: Makes your AI agent think like the laziest senior dev in the room</a></li>
<li><a href="realpython.com/podcasts/rpp/301/">Epis… #301: Running Python Locally in a Sandbox</a></li>
<li><a href="aillio.com/r2">Aillio – Bullet R2 - Coffee Roaster</a></li>
<li><a href="codensolder.com/">CodeNSolder</a>…;
<li><a href="zyte.com/author/ayan-pahwa/">Ayan Pahwa - Zyte</a></li>
<li><a href="hydradb.com/?utm_source=real-python&utm_me…;
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="realpython.com/courses/introduction-to-web-scr… to Web Scraping With Python</a></li>
<li><a href="realpython.com/courses/getting-started-claude-… Started With Claude Code</a></li>
<li><a href="realpython.com/courses/testing-mcp-servers-wit… MCP Servers With a Python MCP Client</a></li>
</ul> <p><a rel="payment" href="realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>

0:00 / 0:00