Viewing profile — andrew_zhong
andrew_zhong
HN member- Joined
- Fri, Mar 04, 2022, 9:33 PM UTC
- HN karma
- 19
- Public activity
- 33 items
- HN profile
- View on Hacker News ↗
About andrew_zhong
Recent public activity
-
story
Show HN: Resurf – realistic, reproducible test framework for AI browser agents
Systematic testing of browser agents today is not easy: testing on real websites is flaky, rate-limited and potentially expensive (e.g. using proxies or bypassing Captcha), while s…
- story
- story
-
story
Show HN: HTML to Markdown with CSS selector & XPath annotations for LLM Scraper
HTML-to-Markdown converters produce clean, readable content for both humans and LLMs — but the DOM structure is lost along the way. You can always feed Markdown to an LLM to extrac…
-
comment
Comment #47555926
You can use a browser automation library for rendering JS + interaction (like click collapse button) and then use this library to extract the HTML after interaction. Here is an exa…
-
comment
Comment #47534258
[Update]] I will replace the stealth browser with plain playwright and remove anti-bot as a feature.
-
comment
Comment #47534243
I hear you loud and clear - will replace the stealth browser with plain playwright and remove anti-bot as a feature.
-
comment
Comment #47534228
[Update] I will replace the stealth browser with plain playwright and remove anti-bot as a feature.
-
comment
Comment #47531689
I agree that When pages have similar structure, for one time extraction as it is (not reasoning from context), scraping with selectors is the way to go. This library also supports …
-
comment
Comment #47531638
What kind of LLMs are you using? In structured output mode? In this library we recover nullable and optional fields, invalid elements in nested array, bad urls, repair incomplete J…
-
comment
Comment #47528542
Put things to perspective - Gemini 2.5 flash is 0.3/1M tokens - assuming each page is 700 tokens and output is not much you are looking at $210 for 1M pages
-
comment
Comment #47528488
Agreed - in this project I did a one path sanitation to recover invalid optional / nullable fields or discard invalid objects in nested array. I know multi path LLM approaches exis…
-
comment
Comment #47528375
We do see fewer invalid JSONs on latest bigger LLMs but still can happen on smaller and cheaper models. There is also case when input is truncated or a required field not found, wh…
-
comment
Comment #47528028
HTML -> markdown -> LLM is standard practice. We strip elements like aside, embed, head , iframe etc. the criteria is conservatively set to avoid removing too many elements (especi…
-
comment
Comment #47527781
In context of e-commerce web extraction, invalid JSON can occur especially in edge cases, for example: price: z.number().optional() -> price: “n/a” url: z.string().url().nullable()…
-
comment
Comment #47527617
I will add a PR to enforce robots.txt before the actual scraping.
-
comment
Comment #47527589
We do respect robots.txt production - also scraping browser providers like BrightData enforces that. I will add a PR to enforce robots.txt before the actual scraping.
-
comment
Comment #47527180
The anti-bot patches here (via Patchright) are about preventing the browser from being detected as automated — fixing CDP leaks, removing automation flags, etc. For sites behind Cl…
-
comment
Comment #47527090
Yeah that's a good observation. XML's closing tags give the model structural anchors during generation — it knows where it is in the nesting. JSON doesn't have that, so the deeper …
-
comment
Comment #47527075
Good point. The anti-bot patches here (via Patchright) are about preventing the browser from being detected as automated — things like CDP leak fixes so Cloudflare doesn't block yo…
-
comment
Comment #47527073
Good point. The anti-bot patches here (via Patchright) are about preventing the browser from being detected as automated — things like CDP leak fixes so Cloudflare doesn't block yo…
-
story
Show HN: Robust LLM extractor for websites in TypeScript
We've been building data pipelines that scrape websites and extract structured data for a while now. If you've done this, you know the drill: you write CSS selectors, the site chan…
- story
-
story
Show HN: Robust LLM Extractor for HTML/Markdown in TypeScript
While working with LLMs for structured web data extraction, we saw issues with invalid JSON and broken links in the output. This led me to build a library focused on robust extract…
-
comment
Comment #40394311
Thank you for the feedback. Our intention is to let users try for 10 days without commitment (no credit card required), so that after 10 days they can choose to subscribe or not. I…