Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Astra for Law(openai.com ↗)
    410comments
  2. Hacking OpenAI(hacktron.ai ↗)
    10comments
  3. Bonsai 2 27B: Near-Lossless Compression in a 9x Smaller Footprint(prismml.com ↗)
    92comments
  4. Bend – A language that blocks AI mistakes via proof, on CPU and GPU(bend-lang.com ↗)
    178comments
  5. Hister: A private search engine for the pages you visit and the files you keep(github.com/asciimoo ↗)
    139comments
  6. Alibaba releases Qwen 3.8 Omni Flash(qwen.ai ↗)
    19comments
  7. Wax motor(wikipedia.org ↗)
    54comments
  8. Fujitsu launches made-in-Japan next-generation CPU FUJITSU-MONAKA(global.fujitsu ↗)
    202comments
  9. Telstra outage: The night a network decided the year was 2006(netnod.se ↗)
    8comments
  10. Ask A Monk – A digital wilderness for thoughts with no immediate answer(askamonk.online ↗)
    5comments
  11. Flet 1.0 – Build cross-platform apps in Python(flet.dev ↗)
    37comments
  12. Better Icon and Label Alignment(ishadeed.com ↗)
    2comments
  13. Diplodocus, Long Thought Exclusively American, Turns Up in Spain(sci.news ↗)
    27comments
  14. The most important product decision is what you don't build(liamnugent.me ↗)
    20comments
  15. Pre-Greek: The lost language hidden within Ancient Greek(linguisticdiscovery.com ↗)
    discuss
  16. How Uber Protects Against Retry Storms(uber.com ↗)
    29comments
  17. Code Scans(devin.ai ↗)
    discuss
  18. CrowdSec Source Code Leak(crowdsec.net ↗)
    42comments
  19. I Put Nam A2-Lite Inside an iRig HD X(playtaurus.com ↗)
    2comments
  20. Why I didn’t sign the Fields medallists’ letter(gowers.wordpress.com ↗)
    326comments
  21. How do we prevent mathemathics from devolving into the Medieval Era of secrecy?(mathoverflow.net ↗)
    69comments
  22. Infinite-Parameter LLMs: Generating and Adapting Weights from Live Data(arxiv.org ↗)
    38comments
  23. Apple detectives solved mystery of ancient tree and rewrote the history of fruit(scientificamerican.com ↗)
    discuss
  24. Rate limits on GitLab.com are changing(about.gitlab.com ↗)
    108comments
  25. The American Religion of Self-Storage Facilities(newyorker.com ↗)
    355comments
  26. Zettascale (YC S24) Is Hiring ASIC/FPGA Engineers to Build Chips for ASI(zscc.ai ↗)
    discuss
  27. TSMC revealing details about next gen A14 node(mapyourshow.com ↗)
    40comments
  28. Show HN: Snapdrop: Instantly share files between devices. No setup, no signup(snapdrop.me ↗)
    25comments
  29. The open source version of Claude Project that gives you the context ownershp(github.com/zqiren ↗)
    discuss
  30. Shapelearn Qwen 3.8 27B (13.1 GB VRAM)(byteshape.com ↗)
    discuss

Show HN: Hikugen – minimalistic LLM-generated web scrapers for structured data

2 pointsby 10mo agogithub.com
0 comments
Hey HN! I wanted to share a little library I've been working on to leverage AI to get structured data from arbitrary pages. Instead of sending the page's HTML to an LLM, Hikugen asks it to generate python code to fetch the data and enforces the generated data conforms to a Pydantic schema defined by the user. I'm using this to power yomu (https://github.com/goncharom/yomu), a personal email newsletter built from arbitrary websites.

Hikugen's main features:

- Automatically generates, runs, regenerates and caches the LLM-generated extraction code.

- It uses sqlite to save the current working code for each page so it can be reused across executions.

- It uses OpenRouter (https://openrouter.ai/) to call the LLM.

- It can fetch the page automatically (it can even reuse Netscape-formatted cookies) but you can also just feed it the raw HTML and leverage the rest of its functionalities.

Here's a snippet of what it looks like:

  from hikugen import HikuExtractor
  from pydantic import BaseModel
  from typing import List
  
  class Article(BaseModel):
      title: str
      author: str
      published_date: str
      content: str
  
  class ArticlePage(BaseModel):
      articles: List[Article]
  
  extractor = HikuExtractor(api_key="your-openrouter-api-key")
  
  result = extractor.extract(
      url="https://example.com/articles",
      schema=ArticlePage
  )
  
  for a in result.articles:
      print(a.title, a.author)
Hikugen is intentionally minimal: it doesn't attempt website navigation, login flows, headless browsers, or large-scale crawling. Just "given this HTML, extract this structured data".

A good chunk of this was built with Claude Code (shoutout to Harper’s blog: https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/.

Would love feedback or ideas—especially from others playing with codegen for scraping tasks.

A quiet thread, for now.Start the conversation on HN ↗