Skip to main content

Web search, fetch, crawl, and browser automation for humans and agents

Project description

fossick

fossick covers the web-interaction stack that keeps coming up in Python and agent workflows: private local search, reading any page from a static blog to a JS-heavy SPA behind bot detection, and direct Chrome automation for authenticated sites, form filling, and multi-step flows.

The modules compose naturally. search() finds URLs; fetch() reads them — handling JavaScript rendering and anti-bot evasion automatically. For YouTube, arXiv papers, or GitHub repos, dedicated readers return structured data. When the page requires a real login session or interactive interaction, cdp_connect() attaches to a running Chrome browser: pg.ax_tree() reads the page state and pg.fill_text() / pg.click_and_wait() act on it.

Install

uv add fossick

Search requires Docker. fossick starts SearXNG automatically on the first call to search().

Search

search() routes queries through a local SearXNG instance running in Docker. Results are cached in Redis. No API key required, no requests leaving your machine.

Call searxng_start() once at the top of each session — it starts the Docker container if needed and persists the URL so future sessions skip startup. search() calls it automatically, but an explicit call avoids startup lag on the first query.

Intent routing picks the right engine automatically. Two or more signals from a category are required before routing away from Google and Brave, so a single generic word does not send a query to the wrong engine.

searxng_start()   # idempotent — returns immediately if already running
'http://localhost:8080'
results = search('fasthtml python web framework', n=5)
for r in results: print(r.title, r.url)
FastHTML - Modern web applications in pure Python https://fastht.ml/
GitHub - AnswerDotAI/fasthtml: The fastest way to create an HTML app https://github.com/answerdotai/fasthtml
FastHTML: a hypermedia-first python framework w/htmx available ootb https://www.reddit.com/r/htmx/comments/1efizmn/fasthtml_a_hypermediafirst_python_framework_whtmx/
First encounter with FastHTML: Building a FastHTML assistant https://medium.com/@mrsirsh/first-encounter-with-fasthtml-building-a-fasthtml-assistant-fe896d3a3e60
FastHTML Tutorial: Build Modern Web Applications with Pure Python https://www.youtube.com/watch?v=AxA8YH_UyBo

Fetch and read

fetch() returns a page dict with the raw HTML, parsed JSON if the response was JSON, and any XHR calls the page made. to_md() converts HTML to clean markdown, optionally narrowing to a CSS selector first. Pass heavy=True for JavaScript-rendered pages or stealthy=True for sites with anti-bot detection.

fossick also pulls transcripts and metadata from YouTube, papers and PDFs from arXiv, and files from GitHub repos.

# extract just the lead paragraphs — no nav, ads, or sidebars
page = fetch('https://en.wikipedia.org/wiki/Web_scraping')
print(to_md(page, sel='.mw-parser-output > p')[:400])
[2026-06-22 20:32:21] INFO: Fetched (200) <GET https://en.wikipedia.org/wiki/Web_scraping> (referer: https://www.google.com/)

crawl() follows links from a start URL, returning a list of Page dicts — useful for documentation sites, blogs, and any multi-page content.

pages = crawl('https://docs.python.org/3/library/functions.html',
              follow_sel='a.reference.internal', same_domain=True, max_pages=3)
print(f'{len(pages)} pages crawled')
[2026-06-22 20:32:23] INFO: Fetched (200) <GET https://docs.python.org/3/library/functions.html> (referer: https://www.google.com/)
[2026-06-22 20:32:23] INFO: Fetched (200) <GET https://docs.python.org/3/reference/datamodel.html#object.__abs__> (referer: https://www.google.com/)
[2026-06-22 20:32:23] INFO: Fetched (200) <GET https://docs.python.org/3/glossary.html#term-asynchronous-iterator> (referer: https://www.google.com/)

3 pages crawled

fetch_all() fetches multiple URLs in parallel — faster than sequential fetch() calls.

urls = ['https://httpbin.org/get', 'https://httpbin.org/status/200', 'https://httpbin.org/json']
pages = fetch_all(urls)
print([p.status for p in pages])
[2026-06-22 20:32:26] INFO: Fetched (503) <GET https://httpbin.org/json> (referer: https://www.google.com/)
[2026-06-22 20:32:26] INFO: Fetched (503) <GET https://httpbin.org/get> (referer: https://www.google.com/)
[2026-06-22 20:32:26] INFO: Fetched (503) <GET https://httpbin.org/status/200> (referer: https://www.google.com/)

[503, 503, 503]

read_arxiv() fetches paper metadata and converts the full PDF to markdown. Pass an arxiv ID, abstract URL, or PDF URL. The PDF is saved to save_dir; results are cached in-process.

paper = read_arxiv('2306.14881', save_dir='.')
print(paper['title'])
print()
print(paper['summary'][:400])
Modeling the molecular gas content and CO-to-H2 conversion factors in low-metallicity star-forming dwarf galaxies

Low-metallicity dwarf galaxies often show no or little CO emission, despite the intense star formation observed in local samples. Both simulations and resolved observations indicate that molecular gas in low-metallicity galaxies may reside in small dense clumps, surrounded by a substantial amount of more diffuse gas, not traced by CO. Constraining the relative importance of CO-bright versus CO-dar

read_gh_repo() clones or fetches a GitHub repo and returns {path: content} for matched files. read_gh_file() reads a single file from a GitHub blob URL.

files = read_gh_repo('https://github.com/vedicreader/kosha', globs=('README*',))
for path, content in files.items():
    print(path.split('/')[-1], f'({len(content)} chars)')
README.md (164718 chars)
txt = read_gh_file('https://github.com/vedicreader/kosha/blob/main/pyproject.toml')
print(txt[:300])
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "koshas"
dynamic = ["version"]
description = "kosha (कोश) — a treasury of your repo and environment context for coding agents. FTS5 + vector search + call graph, no LLMs required."
readme = "README.md"
requir

search_yt() searches YouTube and returns metadata for each result. read_yt() fetches the full English transcript and metadata for a known video URL.

hits = search_yt('3blue1brown neural networks', n=3)
for h in hits: print(h['title'], '\n  ', h['url'])
But what is a neural network? | Deep learning chapter 1 
   https://www.youtube.com/watch?v=aircAruvnKk
Gradient descent, how neural networks learn | Deep Learning Chapter 2 
   https://www.youtube.com/watch?v=IHZwWFHWa-w
Backpropagation, intuitively | Deep Learning Chapter 3 
   https://www.youtube.com/watch?v=Ilg3gGewQ5U
video = read_yt('https://www.youtube.com/watch?v=aircAruvnKk')
print(video['title'])
print(video['source'][:300])
But what is a neural network? | Deep learning chapter 1
[Music] This is a three. It's sloppily written and rendered at an extremely low resolution of 28x 28 pixels. But your brain has no trouble recognizing it as a three. And I want you to take a moment to appreciate how crazy it is that brains can do this so effortlessly. I mean this, this, and this are
path = download_yt('https://www.youtube.com/watch?v=aircAruvnKk',
                   format='audio', save_dir='.')
print(path)  # Path('But what is a neural network.mp3')
WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with  --remote-components ejs:github  (recommended) or  --remote-components ejs:npm , respectively. For more information and alternatives, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
WARNING: [youtube] aircAruvnKk: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS

                                                          But what is a neural network? | Deep learning chapter 1.mp3

url2nb() converts any URL — HTML page, arXiv paper, or PDF — to a Jupyter notebook. pdf2nb() converts a PDF (local path or URL) to a notebook where each page becomes a markdown cell with an empty code cell below for annotations.

nb = url2nb('https://squiddev.medium.com/continuing-continuations-cps-in-python-47bba90c8d1e', cache=True)
print(nb)   # Path('continuing-continuations-cps-in-python-47bba90c8d1e.ipynb')
[2026-06-22 20:37:55] INFO: Fetched (200) <GET https://squiddev.medium.com/continuing-continuations-cps-in-python-47bba90c8d1e> (referer: https://www.google.com/)

continuing-continuations-cps-in-python-47bba90c8d1.ipynb
nb = pdf2nb('https://selfdeterminationtheory.org/SDT/documents/2000_RyanDeci_SDT.pdf', 'sdt.ipynb')
print(nb)   # Path('/path/to/sdt.ipynb')
[2026-06-22 20:37:57] INFO: Fetched (200) <GET https://selfdeterminationtheory.org/SDT/documents/2000_RyanDeci_SDT.pdf> (referer: https://www.google.com/)

/Users/71293/code/personal/orgs/fossick/nbs/sdt.ipynb

Discover hidden APIs

Most modern sites serve their data through undocumented JSON APIs rather than HTML. find_xhr() visits a page with a headless browser and captures every network call the browser makes. paginate_api() replays the request across all pages and collects the results.

posts = paginate_api(
    'https://jsonplaceholder.typicode.com/posts',
    payload={'_page': 1, '_limit': 10},
    page_field='_page',
    size_field='_limit',
    method='GET',
)
print(f'{len(posts)} posts collected')
print(posts[0]['title'])
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=1&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=2&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=3&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=4&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=5&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=6&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=7&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=8&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=9&_limit=10> (referer: https://www.google.com/)
[2026-05-28 16:37:16] INFO: Fetched (200) <GET https://jsonplaceholder.typicode.com/posts?_page=10&_limit=10> (referer: https://www.google.com/)

100 posts collected
sunt aut facere repellat provident occaecati excepturi optio reprehenderit
# on JavaScript-heavy sites, intercept the hidden API with a headless browser
# Woolworths uses a GraphQL endpoint — find_xhr captures whatever calls the page makes
apis = find_xhr('https://www.woolworths.com.au/shop/browse/fruit-veg', pattern='*woolworths.com.au/graphql*')
print(f'{len(apis)} GraphQL calls captured')
for a in apis:
    data = a.get('data', {}).get('data', a.get('data', {}))
    print(a['url'], list(data.keys()) if isinstance(data, dict) else type(data).__name__)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/shop/browse/fruit-veg> (referer: https://www.google.com/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/settings> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/api/ui/v2/bootstrap> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (201) <GET https://www.woolworths.com.au/ZbnWGh/bzsy/4o7V/Z91V/IVtmZUtEk/z1D9kLGuuLOkth/GBAqNwE/CCVe/VHhbPWMB> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/auth/heartbeat> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/Shop/DynamicContent2Panel?scheduleKey=/shop/browse/fruit-veg-bottom> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/akam/13/pixel_7c8f4533> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/PiesCategoriesWithSpecials> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/CarouselProducts> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://dpm.demdex.net/id?d_visid_ver=5.5.0&d_fieldgroup=AAM&d_rtbd=json&d_ver=2&d_orgid=4353388057AC8D357F000101%40AdobeOrg&d_nsid=0&d_mid=79911006971859101769087842756079938574&ts=1779950011997> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://woolworthsfoodgroup.tt.omtrdc.net/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.1> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://woolworthsfoodgroup.tt.omtrdc.net/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.1> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://c.go-mpulse.net/api/config.json?key=LUX5F-TAXLZ-RZV9P-BT522-JCQBY&d=www.woolworths.com.au&t=5933167&v=1.792.80&sl=0&si=1af4e374-018a-4eb6-a2cd-9036acda867a-tfqi7v&plugins=AK,ConfigOverride,Continuity,PageParams,AutoXHR,SPA,History,Angular,Backbone,Ember,RT,PaintTiming,NavigationTiming,ResourceTiming,Memory,Akamai,EventTiming,BFCache,LOGN&acao=&ak.ai=249936> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://cdn0.woolworths.media/wowssr/assets/tga-sku.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (201) <GET https://www.woolworths.com.au/ZbnWGh/bzsy/4o7V/Z91V/IVtmZUtEk/z1D9kLGuuLOkth/GBAqNwE/CCVe/VHhbPWMB> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/browse/category> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/shop/__embedded/browse/fruit-veg?HasTobaccoItems=false> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://cdn0.woolworths.media/wowssr/syd2/a10/browser/assets/navigation/chevron-right.svg> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://cdn0.woolworths.media/wowssr/syd2/a10/browser/assets/navigation/chevron-right.svg> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://api.woolworthsrewards.com.au/cx/nhp/availability/offers/v1/check/adType> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://ct.pinterest.com/user/?event=viewcategory&ed=%7B%22page_name%22%3A%22ww-sm%3Ashop%3Abrowse%3Afruit-veg%22%2C%22page_type%22%3A%22Browse%22%2C%22event%22%3A%22category_view%22%7D&tid=2614249904607&cb=1779950013056&dep=2%2CPAGE_LOAD> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://ct.pinterest.com/user/?event=viewcategory&ed=%7B%22page_name%22%3A%22ww-sm%3Ashop%3Abrowse%3Afruit-veg%22%2C%22page_type%22%3A%22Browse%22%2C%22event%22%3A%22category_view%22%7D&tid=2614249904607&cb=1779950013059&dep=5%2CEVENT_TAGS_ABSENT> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://collect-ap-southeast-2.tealiumiq.com/woolworths/main/2/i.gif> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://api.woolworthsrewards.com.au/cx/nhp/availability/offers/v1/check/adType> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://api.woolworthsrewards.com.au/cx/nhp/availability/offers/v1/check/adType> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://api.woolworthsrewards.com.au/cx/nhp/availability/offers/v1/check/adType> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://woolworthsfoodgroup.sc.omtrdc.net/b/ss/wfg-wx-global-prod/1/JS-2.23.0/s02037651164270> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://cdn0.woolworths.media/wowssr/assets/tga-sku.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://ct.pinterest.com/v3/?event=viewcategory&ed=%7B%22page_name%22%3A%22ww-sm%3Ashop%3Abrowse%3Afruit-veg%22%2C%22page_type%22%3A%22Browse%22%2C%22event%22%3A%22category_view%22%7D&tid=2614249904607&cb=1779950013487&dep=5%2CEVENT_TAGS_ABSENT&pd=%7B%22pin_unauth%22%3A%22dWlkPVpERTNabU0yTldVdE1tSmtOUzAwTmpNd0xUa3hOVFV0TnpRek5EWmpPR05qWVRSaw%22%7D&ad=%7B%22loc%22%3A%22https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg%22%2C%22ref%22%3A%22https%3A%2F%2Fwww.google.com%2F%22%2C%22if%22%3Afalse%2C%22sh%22%3A720%2C%22sw%22%3A1280%2C%22mh%22%3A%22948ee93e%22%2C%22is_eu%22%3Afalse%2C%22architecture%22%3A%22x86%22%2C%22bitness%22%3A%2264%22%2C%22brands%22%3A%5B%7B%22brand%22%3A%22Chromium%22%2C%22version%22%3A%22147%22%7D%2C%7B%22brand%22%3A%22Not.A%2FBrand%22%2C%22version%22%3A%228%22%7D%5D%2C%22mobile%22%3Afalse%2C%22model%22%3A%22%22%2C%22platform%22%3A%22macOS%22%2C%22platformVersion%22%3A%2210.15.7%22%2C%22uaFullVersion%22%3A%22147.0.7727.15%22%2C%22ecm_enabled%22%3Atrue%7D> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/PiesCategoriesWithSpecials> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (204) <GET https://analytics.google.com/g/collect?v=2&tid=G-YBVRJYN9JL&gtm=45je65r0h2v878538926za200zd878538926&_p=1779950012256&_gaz=1&gcd=13l3l3l3l1l1&npa=0&dma=0&gdid=dYmQxMT&_eu=AAAAAGA&are=1&cid=1692319501.1779950014&frm=0&lps=1&pscdl=noapi&rcb=11&sr=1280x720&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uam=&uamb=0&uap=macOS&uapv=10.15.7&uaw=0&ul=en-gb&gaf=2&_s=1&tag_exp=0~115938466~115938468&sid=1779950013&sct=1&seg=0&dl=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&dr=https%3A%2F%2Fwww.google.com%2F&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&en=page_view&_fv=1&_nsi=1&_ss=2&_ee=1&ep.tealium_event=category_view&ep.cart_value=0&ep.collect_event=true&ep.filter_sort_by=Relevance&ep.tile_id=1%2C2%2C3%2C0%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26%2C27%2C28%2C29%2C30%2C31%2C32%2C33%2C34%2C35%2C36%2C37%2C38%2C39%2C40%2C41%2C42%2C43&ep.tealium_visitor_id=019e6d49c759001da3b4760abd0b05075003306d007e8&ep.site_section=shop%3Abrowse&ep.site_name=ww-sm&ep.pfd_items_in_cart=false&ep.page_type=Browse&ep.page_number=1&ep.item_count=44&ep.item_unavailable_count=44&ep.item_min_days_to_delivery=none%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone&ep.item_max_days_to_delivery=none%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone%2Cnone&epn.first_contentful_paint_all=612&epn.first_contentful_paint_first=612&epn.first_paint_all=528&epn.first_paint_first=528&up.store_id=3221&tfd=2993> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (204) <GET https://analytics.google.com/g/collect?v=2&tid=G-YBVRJYN9JL&gtm=45je65r0h2v878538926za200zd878538926&_p=1779950012256&gcd=13l3l3l3l1l1&npa=0&dma=0&gdid=dYmQxMT&_eu=AAAAAGQ&are=1&cid=1692319501.1779950014&frm=0&lps=1&pscdl=noapi&rcb=11&sr=1280x720&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uam=&uamb=0&uap=macOS&uapv=10.15.7&uaw=0&ul=en-gb&gaf=2&_s=2&tag_exp=0~115938466~115938468&sid=1779950013&sct=1&seg=0&dl=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&dr=https%3A%2F%2Fwww.google.com%2F&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&tfd=2997> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (204) <GET https://bat.bing.com/p/insights/c/k> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/apis/ui/products/829107,381923,120080,139238,259450,265225,187314,154340,262783,134681,702151,54899,318163,134034,524336,318290,210687,193753,139645,139897?excludeUnavailable=true> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/graphql> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com/rmkt/collect/969624659/?random=1779950014085&cv=11&fst=1779950014085&fmt=8&bg=ffffff&guid=ON&async=1&en=gtag.config&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&data=event%3Dgtag.config&gcp=5> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com/rmkt/collect/706996958/?random=1779950014157&cv=11&fst=1779950014157&fmt=8&bg=ffffff&guid=ON&async=1&en=gtag.config&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=17&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&_tu=IA&data=event%3Dgtag.config&gcp=5> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://securepubads.g.doubleclick.net/gampad/ads?pvsid=6705090101095288&correlator=2894177363389820&eid=31097658%2C31098733%2C31065644%2C31087490%2C95391587&output=ldjh&gdfp_req=1&vrg=202605210101&ptt=17&impl=fif&iu_parts=22073989984%2Cwoolworths%2Cfruit-veg&enc_prev_ius=%2F0%2F1%2F2&prev_iu_szs=1600x200&ifi=1&dids=ad-unit-496500&adfs=2652548239&sfv=1-0-45&sc=1&cookie_enabled=1&abxe=1&dt=1779950014226&lmt=1779950014&adxs=57&adys=221&biw=1280&bih=720&scr_x=0&scr_y=0&btvi=0&ucis=1&oid=2&u_his=2&u_h=720&u_w=1280&u_ah=720&u_aw=1280&u_cd=24&u_sd=2&u_tz=600&dmc=32&bc=31&nvt=1&uach=WyJtYWNPUyIsIjEwLjE1LjciLCJ4ODYiLCIiLCIxNDcuMC43NzI3LjE1IixudWxsLDAsbnVsbCwiNjQiLFtbIkNocm9taXVtIiwiMTQ3LjAuNzcyNy4xNSJdLFsiTm90LkEvQnJhbmQiLCI4LjAuMC4wIl1dLDBd&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&vis=1&psz=1167x0&msz=1167x0&fws=4&ohw=1280&dlt=1779950011072&idt=3115&prev_scp=InventoryType%3DBanner&adks=3579162148&frm=20&eoidce=1&pgls=CAk.~CAo.> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com/ccm/collect?rcb=1&frm=0&auid=1550109597.1779950014&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&en=page_view&dr=www.google.com&dl=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&scrsrc=www.googletagmanager.com&lps=1&rnd=295323522.1779950014&navt=n&npa=0&did=dYmQxMT&gdid=dYmQxMT&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&apve=1&apvf=f&apvc=1&tids=AW-969624659&tid=AW-969624659&tft=1779950014102&tfd=3358> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com/ccm/collect?rcb=18&frm=0&auid=1550109597.1779950014&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&en=page_view&dr=www.google.com&dl=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&scrsrc=www.googletagmanager.com&lps=1&rnd=295323522.1779950014&navt=n&npa=0&gdid=dYmQxMT&gtm=45fe65r0h2v9181639601za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118689382&apve=1&apvf=f&apvc=0&tids=DC-8348316&tid=DC-8348316&tft=1779950014133&tfd=3389> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com/ccm/collect?rcb=17&frm=0&auid=1550109597.1779950014&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&en=page_view&dr=www.google.com&dl=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&scrsrc=www.googletagmanager.com&lps=1&rnd=295323522.1779950014&navt=n&npa=0&did=dYmQxMT&gdid=dYmQxMT&_tu=IA&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&apve=1&apvf=f&apvc=0&tids=AW-706996958&tid=AW-706996958&tft=1779950014170&tfd=3426> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://securepubads.g.doubleclick.net/gampad/ads?pvsid=6705090101095288&correlator=2894177363389820&eid=31097658%2C31098733%2C31065644%2C31087490%2C95391587&output=ldjh&gdfp_req=1&vrg=202605210101&ptt=17&impl=fif&iu_parts=22073989984%2Ccontent-card%2Cfruit-veg&enc_prev_ius=%2F0%2F1%2F2&prev_iu_szs=320x50&fluid=height&ifi=2&dids=ad-unit-1952885819&adfs=208333102&sfv=1-0-45&sc=1&cookie_enabled=1&abxe=1&dt=1779950014233&lmt=1779950014&adxs=56&adys=3517&biw=1280&bih=720&scr_x=0&scr_y=0&btvi=1&ucis=2&oid=2&u_his=2&u_h=720&u_w=1280&u_ah=720&u_aw=1280&u_cd=24&u_sd=2&u_tz=600&dmc=32&bc=31&nvt=1&uach=WyJtYWNPUyIsIjEwLjE1LjciLCJ4ODYiLCIiLCIxNDcuMC43NzI3LjE1IixudWxsLDAsbnVsbCwiNjQiLFtbIkNocm9taXVtIiwiMTQ3LjAuNzcyNy4xNSJdLFsiTm90LkEvQnJhbmQiLCI4LjAuMC4wIl1dLDBd&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&vis=1&psz=224x392&msz=224x392&fws=4&ohw=1280&dlt=1779950011072&idt=3115&prev_scp=InventoryType%3DContent%2520Card&adks=1961169011&frm=20&eoidce=1&pgls=CAk.~CAo.> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.googleadservices.com/pagead/set_partitioned_cookie?rcb=1&frm=0&apvc=1&auid=1550109597.1779950014&dt=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&tid=AW-969624659&en=page_view&ref=www.google.com&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&scrsrc=www.googletagmanager.com&lps=1&rnd=295323522.1779950014&navt=n&npa=0&did=dYmQxMT&gdid=dYmQxMT&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&tft=1779950014091&tfd=3347&apve=1&apvf=f> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.googleadservices.com/pagead/conversion/969624659/?random=1779950014099&cv=11&fst=1779950014099&fmt=7&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=1&label=c7avCOOr79EBENOYrc4D&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&gcl_ctr=1~0~0~0&data=event%3Dconversion&category=acrcp_v1_512> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.googleadservices.com/pagead/conversion/706996958/?random=1779950014167&cv=11&fst=1779950014167&fmt=7&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=17&label=oQFKCJCy0dQBEN7Vj9EC&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&ec_mode=a&gcl_ctr=2~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&em=tv.1> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://acs.woolworths.com.au/rest/v1/delivery?client=woolworthsfoodgroup&sessionId=6d7dd35c357c4bc5899443d02236000a&version=2.10.2> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Response body is unavailable for redirect responses
[2026-05-28 16:34:05] INFO: Fetched (302) <GET https://ad.doubleclick.net/activity;src=8348316;type=supcat;cat=supcfv;rcb=18;ord=7098498947355;npa=0;auiddc=1550109597.1779950014;u4=%2Fshop%2Fbrowse%2Ffruit-veg;u9=381923%2C785544%2C948491%2C%2C948511%2C133211%2C134034%2C141410%2C105919%2C120080%2C144329%2C781403%2C781401%2C948507%2C208895%2C157649%2C134681%2C137130%2C135306%2C170225%2C147071%2C135344%2C144607%2C829107%2C144497%2C130935%2C135369%2C165262%2C187314%2C169067%2C259450%2C149620%2C137102%2C155003%2C154340%2C138801%2C169438%2C259514%2C524322%2C267084%2C147603%2C149864%2C144336%2C139238;u10=%2Fshop%2Fproductdetails%2F381923%2Fkanzi-apple%2C%2Fshop%2Fproductdetails%2F785544%2Fkanzi-apple-punnet%2C%2Fshop%2Fproductdetails%2F948491%2Fgourmet-garden-cold-blend-pastes-garlic%2C%2Fshop%2Fproductdetails%2Fundefined%2Fundefined%2C%2Fshop%2Fproductdetails%2F948511%2Fgourmet-garden-paste-ginger%2C%2Fshop%2Fproductdetails%2F133211%2Fcavendish-bananas%2C%2Fshop%2Fproductdetails%2F134034%2Fgourmet-tomato%2C%2Fshop%2Fproductdetails%2F141410%2Fmandarin-imperial%2C%2Fshop%2Fproductdetails%2F105919%2Ffresh-pink-lady-apples%2C%2Fshop%2Fproductdetails%2F120080%2Fhass-avocado%2C%2Fshop%2Fproductdetails%2F144329%2Fonion-brown%2C%2Fshop%2Fproductdetails%2F781403%2Fgourmet-garden-parsley-lightly-dried-sachet%2C%2Fshop%2Fproductdetails%2F781401%2Fgourmet-garden-basil-lightly-dried-sachet%2C%2Fshop%2Fproductdetails%2F948507%2Fgourmet-garden-paste-chilli-mild%2C%2Fshop%2Fproductdetails%2F208895%2Fpotato-white-washed%2C%2Fshop%2Fproductdetails%2F157649%2Feat-later-cavendish-bananas%2C%2Fshop%2Fproductdetails%2F134681%2Ffresh-broccoli%2C%2Fshop%2Fproductdetails%2F137130%2Flebanese-cucumbers%2C%2Fshop%2Fproductdetails%2F135306%2Fred-capsicum%2C%2Fshop%2Fproductdetails%2F170225%2Ffresh-zucchini-green%2C%2Fshop%2Fproductdetails%2F147071%2Fsweet-potato-gold%2C%2Fshop%2Fproductdetails%2F135344%2Fcarrot-fresh%2C%2Fshop%2Fproductdetails%2F144607%2Fstrawberries-punnet%2C%2Fshop%2Fproductdetails%2F829107%2Fmandarin-amorette-seedless%2C%2Fshop%2Fproductdetails%2F144497%2Fonion-red%2C%2Fshop%2Fproductdetails%2F130935%2Ffresh-granny-smith-apples%2C%2Fshop%2Fproductdetails%2F135369%2Fwoolworths-australian-grown-carrots%2C%2Fshop%2Fproductdetails%2F165262%2Fdriscoll-s-raspberries-punnet%2C%2Fshop%2Fproductdetails%2F187314%2Fwoolworths-broccolini-bunch%2C%2Fshop%2Fproductdetails%2F169067%2Fwoolworths-qukes-baby-cucumbers-punnet%2C%2Fshop%2Fproductdetails%2F259450%2Forange-navel%2C%2Fshop%2Fproductdetails%2F149620%2Fwoolworths-cherry-tomatoes-punnet%2C%2Fshop%2Fproductdetails%2F137102%2Fwoolworths-continental-cucumbers%2C%2Fshop%2Fproductdetails%2F155003%2Fapple-royal-gala%2C%2Fshop%2Fproductdetails%2F154340%2Ficeberg-lettuce%2C%2Fshop%2Fproductdetails%2F138801%2Fwhite-seedless-grapes-bag-approx-900g%2C%2Fshop%2Fproductdetails%2F169438%2Ftruss-tomatoes%2C%2Fshop%2Fproductdetails%2F259514%2Flemon-loose%2C%2Fshop%2Fproductdetails%2F524322%2Fwoolworths-baby-leaf-spinach%2C%2Fshop%2Fproductdetails%2F267084%2Fwoolworths-sungold-kiwifruit-gold%2C%2Fshop%2Fproductdetails%2F147603%2Fspring-onion-bunch%2C%2Fshop%2Fproductdetails%2F149864%2Ftomato-roma-red%2C%2Fshop%2Fproductdetails%2F144336%2Fwoolworths-onion-brown-bag%2C%2Fshop%2Fproductdetails%2F139238%2Fkiwi-fruit-green;u11=1.03%2C5.90%2C4.00%2C0.00%2C4.00%2C0.81%2C0.65%2C0.53%2C1.31%2C2.00%2C0.63%2C4.00%2C4.00%2C4.00%2C0.95%2C0.81%2C1.49%2C1.53%2C2.48%2C1.18%2C1.56%2C0.36%2C0.00%2C0.47%2C0.89%2C1.31%2C1.70%2C4.50%2C3.70%2C3.00%2C1.29%2C3.20%2C2.70%2C1.26%2C3.30%2C6.00%2C1.25%2C1.56%2C3.30%2C1.53%2C3.00%2C0.80%2C3.60%2C0.96;gdid=dYmQxMT;uaa=x86;uab=64;uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0;uamb=0;uam=;uap=macOS;uapv=10.15.7;uaw=0;pscdl=noapi;frm=0;_tu=IFA;gtm=45fe65r0h2v9181639601za200zb878538926zd878538926xec;gcd=13l3l3l3l1l1;dma=0;dc_fmt=6;tag_exp=0~115938466~115938469~116701382~118689382;epver=2;dc_random=1779950014_Zyp9TjrtzrtIKjfB1hqW4ZEz6dJUB74mLA;~oref=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg?> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://adservice.google.com/ddm/fls/z/src=8348316;type=supcat;cat=supcfv;rcb=18;ord=7098498947355;npa=0;auiddc=*;u4=%2Fshop%2Fbrowse%2Ffruit-veg;u9=381923%2C785544%2C948491%2C%2C948511%2C133211%2C134034%2C141410%2C105919%2C120080%2C144329%2C781403%2C781401%2C948507%2C208895%2C157649%2C134681%2C137130%2C135306%2C170225%2C147071%2C135344%2C144607%2C829107%2C144497%2C130935%2C135369%2C165262%2C187314%2C169067%2C259450%2C149620%2C137102%2C155003%2C154340%2C138801%2C169438%2C259514%2C524322%2C267084%2C147603%2C149864%2C144336%2C139238;u10=%2Fshop%2Fproductdetails%2F381923%2Fkanzi-apple%2C%2Fshop%2Fproductdetails%2F785544%2Fkanzi-apple-punnet%2C%2Fshop%2Fproductdetails%2F948491%2Fgourmet-garden-cold-blend-pastes-garlic%2C%2Fshop%2Fproductdetails%2Fundefined%2Fundefined%2C%2Fshop%2Fproductdetails%2F948511%2Fgourmet-garden-paste-ginger%2C%2Fshop%2Fproductdetails%2F133211%2Fcavendish-bananas%2C%2Fshop%2Fproductdetails%2F134034%2Fgourmet-tomato%2C%2Fshop%2Fproductdetails%2F141410%2Fmandarin-imperial%2C%2Fshop%2Fproductdetails%2F105919%2Ffresh-pink-lady-apples%2C%2Fshop%2Fproductdetails%2F120080%2Fhass-avocado%2C%2Fshop%2Fproductdetails%2F144329%2Fonion-brown%2C%2Fshop%2Fproductdetails%2F781403%2Fgourmet-garden-parsley-lightly-dried-sachet%2C%2Fshop%2Fproductdetails%2F781401%2Fgourmet-garden-basil-lightly-dried-sachet%2C%2Fshop%2Fproductdetails%2F948507%2Fgourmet-garden-paste-chilli-mild%2C%2Fshop%2Fproductdetails%2F208895%2Fpotato-white-washed%2C%2Fshop%2Fproductdetails%2F157649%2Feat-later-cavendish-bananas%2C%2Fshop%2Fproductdetails%2F134681%2Ffresh-broccoli%2C%2Fshop%2Fproductdetails%2F137130%2Flebanese-cucumbers%2C%2Fshop%2Fproductdetails%2F135306%2Fred-capsicum%2C%2Fshop%2Fproductdetails%2F170225%2Ffresh-zucchini-green%2C%2Fshop%2Fproductdetails%2F147071%2Fsweet-potato-gold%2C%2Fshop%2Fproductdetails%2F135344%2Fcarrot-fresh%2C%2Fshop%2Fproductdetails%2F144607%2Fstrawberries-punnet%2C%2Fshop%2Fproductdetails%2F829107%2Fmandarin-amorette-seedless%2C%2Fshop%2Fproductdetails%2F144497%2Fonion-red%2C%2Fshop%2Fproductdetails%2F130935%2Ffresh-granny-smith-apples%2C%2Fshop%2Fproductdetails%2F135369%2Fwoolworths-australian-grown-carrots%2C%2Fshop%2Fproductdetails%2F165262%2Fdriscoll-s-raspberries-punnet%2C%2Fshop%2Fproductdetails%2F187314%2Fwoolworths-broccolini-bunch%2C%2Fshop%2Fproductdetails%2F169067%2Fwoolworths-qukes-baby-cucumbers-punnet%2C%2Fshop%2Fproductdetails%2F259450%2Forange-navel%2C%2Fshop%2Fproductdetails%2F149620%2Fwoolworths-cherry-tomatoes-punnet%2C%2Fshop%2Fproductdetails%2F137102%2Fwoolworths-continental-cucumbers%2C%2Fshop%2Fproductdetails%2F155003%2Fapple-royal-gala%2C%2Fshop%2Fproductdetails%2F154340%2Ficeberg-lettuce%2C%2Fshop%2Fproductdetails%2F138801%2Fwhite-seedless-grapes-bag-approx-900g%2C%2Fshop%2Fproductdetails%2F169438%2Ftruss-tomatoes%2C%2Fshop%2Fproductdetails%2F259514%2Flemon-loose%2C%2Fshop%2Fproductdetails%2F524322%2Fwoolworths-baby-leaf-spinach%2C%2Fshop%2Fproductdetails%2F267084%2Fwoolworths-sungold-kiwifruit-gold%2C%2Fshop%2Fproductdetails%2F147603%2Fspring-onion-bunch%2C%2Fshop%2Fproductdetails%2F149864%2Ftomato-roma-red%2C%2Fshop%2Fproductdetails%2F144336%2Fwoolworths-onion-brown-bag%2C%2Fshop%2Fproductdetails%2F139238%2Fkiwi-fruit-green;u11=1.03%2C5.90%2C4.00%2C0.00%2C4.00%2C0.81%2C0.65%2C0.53%2C1.31%2C2.00%2C0.63%2C4.00%2C4.00%2C4.00%2C0.95%2C0.81%2C1.49%2C1.53%2C2.48%2C1.18%2C1.56%2C0.36%2C0.00%2C0.47%2C0.89%2C1.31%2C1.70%2C4.50%2C3.70%2C3.00%2C1.29%2C3.20%2C2.70%2C1.26%2C3.30%2C6.00%2C1.25%2C1.56%2C3.30%2C1.53%2C3.00%2C0.80%2C3.60%2C0.96;gdid=dYmQxMT;uaa=x86;uab=64;uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0;uamb=0;uam=;uap=macOS;uapv=10.15.7;uaw=0;pscdl=noapi;frm=0;_tu=IFA;gtm=45fe65r0h2v9181639601za200zb878538926zd878538926xec;gcd=13l3l3l3l1l1;dma=0;dc_fmt=6;tag_exp=0~115938466~115938469~116701382~118689382;epver=2;dc_random=1779950014_Zyp9TjrtzrtIKjfB1hqW4ZEz6dJUB74mLA;~oref=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Response body is unavailable for redirect responses
[2026-05-28 16:34:05] INFO: Fetched (302) <GET https://googleads.g.doubleclick.net/pagead/viewthroughconversion/969624659/?random=1642705173&cv=11&fst=1779950014099&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=1&label=c7avCOOr79EBENOYrc4D&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&gcl_ctr=1~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCJfUsQIIyduxAgjU5rECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZdHJpZ2dlcj1uYXZpZ2F0aW9uLXNvdXJjZVoDCgEBYgMKAQM&cerd=CgTbib4t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhobfHYtttOOJTBc6uSC3s125TuRVBtghkEkbBuRObgtSNn2SWGquExoC7W8&pscrd=IhMIpofOwq7blAMVosiEAB2AIBfGOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUWkkxTktlZlZ2Vmh6Q0NOR1RUdEFDZWFNUjlrNC1XMU5ySktGcUFXWURZUWVZb205bmJDd3oMCAliCAgAEAAYACAA> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Response body is unavailable for redirect responses
[2026-05-28 16:34:05] INFO: Fetched (302) <GET https://www.google.com/pagead/1p-conversion/969624659/?random=1642705173&cv=11&fst=1779950014099&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=1&label=c7avCOOr79EBENOYrc4D&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&gcl_ctr=1~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCJfUsQIIyduxAgjU5rECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZdHJpZ2dlcj1uYXZpZ2F0aW9uLXNvdXJjZVoDCgEBYgMKAQM&cerd=CgTbib4t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhobfHYtttOOJTBc6uSC3s125TuRVBtghkEkbBuRObgtSNn2SWGquExoC7W8&pscrd=IhMIpofOwq7blAMVosiEAB2AIBfGOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUWkkxTktlZlZ2Vmh6Q0NOR1RUdEFDZWFNUjlrNC1XMU5ySktGcUFXWURZUWVZb205bmJDd3oMCAliCAgAEAAYACAA&is_vtc=1&cid=CAQS-QEABaugfaBQnVt35jFlNlcJ0OJ61sjJvZH33IrWyQpfvm286tbikEv7ponCGi9Lbn421fo29MkHQO9kHh0MzvjPJkZm2yRHIrRLRP-BFXqvI3lK7Fm4xWtUs8_SjHGvlkAIDSFXVy2Sv41vUd7Sg8zJT1fFAPyLs36phTGDw-8RyCqLCRGTGPofLSVBiJwSwtBOhd6cpal3vj15YfVeAtmqSN7hnmxozgxsav4tIjOSkhv2C18YL6f5F9Rce5ltXIMU2rsJIR12Q07eMsdu8y8xDrVXWlT0PKJA-CFzhgoBRNvGVx6nImuJjJw9AfwYNEAREHoo5dCXv0c&random=1782424608> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com.au/pagead/1p-conversion/969624659/?random=1642705173&cv=11&fst=1779950014099&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v9207916595za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115616985~115938466~115938469~116701382&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=1&label=c7avCOOr79EBENOYrc4D&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&gcl_ctr=1~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCJfUsQIIyduxAgjU5rECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZdHJpZ2dlcj1uYXZpZ2F0aW9uLXNvdXJjZVoDCgEBYgMKAQM&cerd=CgTbib4t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhobfHYtttOOJTBc6uSC3s125TuRVBtghkEkbBuRObgtSNn2SWGquExoC7W8&is_vtc=1&cid=CAQS-QEABaugfaBQnVt35jFlNlcJ0OJ61sjJvZH33IrWyQpfvm286tbikEv7ponCGi9Lbn421fo29MkHQO9kHh0MzvjPJkZm2yRHIrRLRP-BFXqvI3lK7Fm4xWtUs8_SjHGvlkAIDSFXVy2Sv41vUd7Sg8zJT1fFAPyLs36phTGDw-8RyCqLCRGTGPofLSVBiJwSwtBOhd6cpal3vj15YfVeAtmqSN7hnmxozgxsav4tIjOSkhv2C18YL6f5F9Rce5ltXIMU2rsJIR12Q07eMsdu8y8xDrVXWlT0PKJA-CFzhgoBRNvGVx6nImuJjJw9AfwYNEAREHoo5dCXv0c&random=1782424608&ipr=y&pscrd=IhMIpofOwq7blAMVosiEAB2AIBfGOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUWkkxTktlZlZ2Vmh6Q0NOR1RUdEFDZWFNUjlrNC1XMU5ySktGcUFXWURZUWVZb205bmJDd3oMCAliCAgAEAAYACAAggEacAGIAQGQAQGYAQGyAQcIrMbcARABwgECCAE> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://chatwidget.woolworths.com.au/configs/wowo.json?q=www.woolworths.com.au-1038.0.0-> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Response body is unavailable for redirect responses
[2026-05-28 16:34:05] INFO: Fetched (302) <GET https://googleads.g.doubleclick.net/pagead/viewthroughconversion/706996958/?random=332136726&cv=11&fst=1779950014167&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=17&label=oQFKCJCy0dQBEN7Vj9EC&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&ec_mode=a&gcl_ctr=2~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&em=tv.1&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCMnjsQIIl9SxAgjJ27ECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZbm90LWV2ZW50LXNvdXJjZSwgdHJpZ2dlcloDCgEBYgMKAQM&cerd=CgSg870t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhgU-mr1Suf59DFLqpGm7r6LKinpwUfbF8N6UD3ipqP4Kuo6tvV1wdhoCQHk&pscrd=IhMI8ZPOwq7blAMVUOSEAB03qRUoOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUa0hvYnlFVXcya0pRLVFyY3NxVGk4b1NSeHc5NkUwT2FjclNqZTRNbDYyMmVSbTlURTNiVXoMCAliCAgAEAAYACAA> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Response body is unavailable for redirect responses
[2026-05-28 16:34:05] INFO: Fetched (302) <GET https://www.google.com/pagead/1p-conversion/706996958/?random=332136726&cv=11&fst=1779950014167&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=17&label=oQFKCJCy0dQBEN7Vj9EC&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&ec_mode=a&gcl_ctr=2~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&em=tv.1&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCMnjsQIIl9SxAgjJ27ECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZbm90LWV2ZW50LXNvdXJjZSwgdHJpZ2dlcloDCgEBYgMKAQM&cerd=CgSg870t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhgU-mr1Suf59DFLqpGm7r6LKinpwUfbF8N6UD3ipqP4Kuo6tvV1wdhoCQHk&pscrd=IhMI8ZPOwq7blAMVUOSEAB03qRUoOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUa0hvYnlFVXcya0pRLVFyY3NxVGk4b1NSeHc5NkUwT2FjclNqZTRNbDYyMmVSbTlURTNiVXoMCAliCAgAEAAYACAA&is_vtc=1&cid=CAQS-QEABaugfURudwOH2jnIhzEw6bRGF0rlF3zWBwhW4qKPkDHdBjBaUBrSqdBSS5XlOgRY8TBWEqBaQI9aKZUtUm4vINpnronQ6vZ_j49b89wHWf70lsLPQJ2k7w-Ki4emI20e7dImPAvFpp6R4d7NjxCrBMZs7J-0Gfftm6QCZmquF67HEcUzPFlVVxVlNJtZZ4x_DQEl61YmWJxH9-ikjpxjsIW5DNqhC7_lm0JTuVZi_LkPOK6juqwv5K8aPE4FLXMUKuLm9ODJOXOnZMIlJR2OqE5MbJaX4Flx7xnhRLbo4e7osRuSgqwRnxMBU_VT9TAOG49rVbX64pA&random=796175616> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] ERROR: Error getting page content: Response.body: Protocol error (Network.getResponseBody): No data found for resource with given identifier
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.google.com.au/pagead/1p-conversion/706996958/?random=332136726&cv=11&fst=1779950014167&fmt=8&bg=ffffff&guid=ON&async=1&en=conversion&gtm=45be65r0h2v894961105za200zb878538926zd878538926xec&gcd=13l3l3l3l1l1&dma=0&tag_exp=0~115938466~115938469~116701382~118228215&u_w=1280&u_h=720&url=https%3A%2F%2Fwww.woolworths.com.au%2Fshop%2Fbrowse%2Ffruit-veg&ref=https%3A%2F%2Fwww.google.com%2F&rcb=17&label=oQFKCJCy0dQBEN7Vj9EC&capi=1&gtm_ee=1&frm=0&tiba=Fresh%20Fruit%20%26%20Vegetables%20%7C%20Woolworths&did=dYmQxMT&gdid=dYmQxMT&value=1&hn=www.googleadservices.com&npa=0&pscdl=noapi&auid=1550109597.1779950014&uaa=x86&uab=64&uafvl=Chromium%3B147.0.7727.15%7CNot.A%252FBrand%3B8.0.0.0&uamb=0&uam=&uap=macOS&uapv=10.15.7&uaw=0&ec_mode=a&gcl_ctr=2~0~0~0&data=event%3Dconversion&category=acrcp_v1_512&em=tv.1&ct_cookie_present=false&crd=CLTesQII8t-xAgit4bECCKG4sQIIscGxAgiwwbECCLHDsQIIisWxAgjCybECCLTGsQIIk9qxAgjb3LECCIfbsQII08WxAgjrzLECCO3OsQII1c-xAgj02rECCMnjsQIIl9SxAgjJ27ECCLHhsQIIs-GxAgim3bECCLDesQIIgNuxAkoZbm90LWV2ZW50LXNvdXJjZSwgdHJpZ2dlcloDCgEBYgMKAQM&cerd=CgSg870t&fsk=ChAI8Kza0AYQn--F9POI5p4NEiwAPzTlhgU-mr1Suf59DFLqpGm7r6LKinpwUfbF8N6UD3ipqP4Kuo6tvV1wdhoCQHk&is_vtc=1&cid=CAQS-QEABaugfURudwOH2jnIhzEw6bRGF0rlF3zWBwhW4qKPkDHdBjBaUBrSqdBSS5XlOgRY8TBWEqBaQI9aKZUtUm4vINpnronQ6vZ_j49b89wHWf70lsLPQJ2k7w-Ki4emI20e7dImPAvFpp6R4d7NjxCrBMZs7J-0Gfftm6QCZmquF67HEcUzPFlVVxVlNJtZZ4x_DQEl61YmWJxH9-ikjpxjsIW5DNqhC7_lm0JTuVZi_LkPOK6juqwv5K8aPE4FLXMUKuLm9ODJOXOnZMIlJR2OqE5MbJaX4Flx7xnhRLbo4e7osRuSgqwRnxMBU_VT9TAOG49rVbX64pA&random=796175616&ipr=y&pscrd=IhMI8ZPOwq7blAMVUOSEAB03qRUoOh5odHRwczovL3d3dy53b29sd29ydGhzLmNvbS5hdS9CV0NoRUk4S3phMEFZUXg4TEJ3djdPOTVUekFSSXNBRDBuQWVUa0hvYnlFVXcya0pRLVFyY3NxVGk4b1NSeHc5NkUwT2FjclNqZTRNbDYyMmVSbTlURTNiVXobCAlY6caxAljpxrECWOnGsQJiCAgAEAAYACAAggEacAGIAQGQAQGYAQGyAQcIiaXdARABwgECCAE> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/graphql> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://nebula-cdn.kampyle.com/au/wau/68738/onsite/onsiteData1778571097953.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://nebula-cdn.kampyle.com/au/wau/68738/forms/3725/formData1762328011276_en.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://nebula-cdn.kampyle.com/au/wau/68738/forms/3726/formData1762328029477_en.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://nebula-cdn.kampyle.com/au/wau/68738/forms/7952/formDataV2_1762329178994_en.json> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://analytics-fe.digital-cloud-syd1.medallia.com.au/api/web/events> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://analytics-fe.digital-cloud-syd1.medallia.com.au/api/web/events> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://analytics-fe.digital-cloud-syd1.medallia.com.au/api/web/events> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://ep1.adtrafficquality.google/getconfig/sodar?sv=200&tid=gpt&tv=m202605210101&st=env&sjk=6705090101095288> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://analytics-fe.digital-cloud-syd1.medallia.com.au/api/web/events> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://insight.adsrvr.org/track/realtimeconversion> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (200) <GET https://www.woolworths.com.au/ZbnWGh/bzsy/4o7V/Z91V/IVtmZUtEk/kJD9kLGu/IjwzNwE/HFIm/ImVmBVN0> (referer: https://www.woolworths.com.au/shop/browse/fruit-veg)
[2026-05-28 16:34:05] INFO: Fetched (439) <GET https://dc.services.visualstudio.com/v2/track> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (439) <GET https://dc.services.visualstudio.com/v2/track> (referer: https://www.woolworths.com.au/)
[2026-05-28 16:34:05] INFO: Fetched (439) <GET https://dc.services.visualstudio.com/v2/track> (referer: https://www.woolworths.com.au/)

2 GraphQL calls captured
https://www.woolworths.com.au/graphql ['products']
https://www.woolworths.com.au/graphql ['products']

Browser automation

cdp_connect() attaches to a running Chrome browser over the DevTools Protocol. The browser uses a persistent debug profile so cookies and SSO sessions survive across runs. Log in once to any enterprise or authenticated site; every subsequent call reuses that session.

Use pg.ax_tree() to read the accessibility tree, then pass node IDs from the output to pg.fill_text() and pg.click_and_wait(). syncy() runs any async CDP call synchronously.

Always print the full ax_tree() output and read node IDs from it — never truncate. IDs change on every navigation, so re-read the tree after each action. fill_text() and click_and_wait() handle all waits internally — no time.sleep() needed.

from fossick.cdp import cdp_connect, syncy

cdp = syncy(cdp_connect())
pg  = syncy(cdp.open_page('https://example.com/login'))

# Print the FULL tree — never truncate — read [#N] IDs from the output
rt = syncy(pg.ax_tree())
print(str(rt))

# Use IDs directly from the tree; IDs change after every navigation
syncy(pg.fill_text(123, 'user@example.com'))   # [#123] = email field
syncy(pg.fill_text(456, 'mypassword'))         # [#456] = password field

# Verify before submitting
rt2 = syncy(pg.ax_tree())
print(str(rt2))

syncy(pg.click_and_wait(789))                  # [#789] = submit button

# Read result
print(str(syncy(pg.ax_tree())))

Setup

setup_chrome_daemon() installs a system service that starts Chrome with remote debugging at login. Run once per machine — macOS (launchd), Linux (systemd), or Windows (Task Scheduler).

CLI

fossick ships a fossick command for shell scripts and agent harnesses that don’t have a Python kernel. All commands accept --as_json to return JSON instead of markdown.

# fetch a page as markdown
fossick fetch https://en.wikipedia.org/wiki/Web_scraping --sel '.mw-parser-output > p'

# web search
fossick search "fasthtml python framework" --n 5

# read an arxiv paper (summary only by default; --source for full text)
fossick read-arxiv 2306.14881

# YouTube transcript
fossick read-yt https://www.youtube.com/watch?v=aircAruvnKk

# search YouTube
fossick search-yt "3blue1brown neural networks" --n 3

# download YouTube audio or video
fossick download-yt https://www.youtube.com/watch?v=aircAruvnKk --format audio

# convert a URL, PDF, or arXiv paper to a Jupyter notebook
fossick url2nb https://arxiv.org/abs/2306.14881

# capture outgoing network requests fired by a page (uses real Chrome session)
fossick calls https://example.com --pattern '*api*' --as_json

# interactive screenshot capture — overlays a button in Chrome, ✓ Done to finish
fossick collect https://example.com --save_dir shots

# click elements to annotate them with AX role + selector; saves labeled screenshot
fossick annotate https://example.com --save_dir shots

# install SKILL.md to .agents/skills/fossick/ and .claude/skills/fossick/
fossick install
# macOS, Linux, or Windows — detects platform automatically
setup_chrome_daemon(port=9222)
# To uninstall: setup_chrome_daemon(port=9222, uninstall=True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fossick-0.0.5.tar.gz (55.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fossick-0.0.5-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file fossick-0.0.5.tar.gz.

File metadata

  • Download URL: fossick-0.0.5.tar.gz
  • Upload date:
  • Size: 55.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for fossick-0.0.5.tar.gz
Algorithm Hash digest
SHA256 c5b17fb1884782a076a80bd3a4108e2c80981db87352f9b45a8a53f35b0ffc01
MD5 99d86b8d5889cb2836ae831cfed183db
BLAKE2b-256 78a393df23243c2305447a7218557b530b874f2e621716066693f87206f64b28

See more details on using hashes here.

File details

Details for the file fossick-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: fossick-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 46.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for fossick-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c73e9bd4c62281a8bce68e351fb2ae3f536d2c1c6d770d9407645e3e42283ef8
MD5 140e793bdb0d895189680d6371b9fa20
BLAKE2b-256 028068af29972f214ee45c686ce61cd74fb3961683d8a5d215f10b5fde0db631

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page