Skip to content

vedicreader/fossick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fossick

fossick is a Python library for pulling structured information from the web. Three modules cover the three things that keep coming up: searching privately with a local engine, reading any page including JavaScript-heavy and bot-protected ones, and attaching to a real Chrome browser to intercept and replay its network traffic.

The modules work well together. search() finds URLs; fetch() reads them; CDPSession.sniff() handles the sites where nothing else works.

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. The first call starts the container; subsequent results are cached in Redis. No API key required, no requests leaving your machine.

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.

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/
the official FastHTML documentation. https://www.fastht.ml/docs/index.html
Intro to FastHTML, the Python framework for frontend and backend ... https://www.youtube.com/watch?v=U28MiS9fjzQ
FastHTML: Revolutionizing Web Development with Python https://www.geeksforgeeks.org/python/fasthtml-modern-web-application-in-pure-python/
First encounter with FastHTML: Building a FastHTML assistant https://medium.com/@mrsirsh/first-encounter-with-fasthtml-building-a-fasthtml-assistant-fe896d3a3e60

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-05-28 16:45:49] INFO: Fetched (200) <GET https://en.wikipedia.org/wiki/Web_scraping> (referer: https://www.google.com/)

**Web scraping** , **web harvesting** , or **web data extraction** is data scraping used for extracting data from websites.[1] Web scraping software may directly access the World Wide Web using the Hypertext Transfer Protocol or a web browser. While web scraping can be done manually by a software user, the term typically refers to automated processes implemented using a bot or web crawler. It is a

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')
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])
[200, 200, 200]

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/AnswerDotAI/fastcore', globs=('README*',))
for path, content in files.items():
    print(path.split('/')[-1], f'({len(content)} chars)')
README.md (2197 chars)
txt = read_gh_file('https://github.com/AnswerDotAI/fastcore/blob/master/pyproject.toml')
print(txt[:300])
[build-system]
requires = ["setuptools>=64.0"]
build-backend = "setuptools.build_meta"

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')

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

CDPSession attaches to a running Chrome over the DevTools Protocol. automation_browser() is the single entry point — it launches Chrome with 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.

sniff() records every network request Chrome makes, either while you browse manually or while navigating to a URL. replay() sends any captured request again with modifications, useful for changing page size, filters, or auth headers without going through the browser.

# automation_browser starts Chrome with a persistent profile — sessions survive across runs
with automation_browser() as s:
    caps = s.sniff(
        url='https://www.woolworths.com.au/shop/browse/fruit-veg',
        pattern='*woolworths.com.au/graphql*',
        timeout=15,
    )
    print(f'page fired {len(caps)} GraphQL calls on load: {[c.url for c in caps]}')
with automation_browser() as s:
    caps = s.sniff(
        url='https://www.woolworths.com.au/shop/browse/fruit-veg',
        pattern='*woolworths.com.au/graphql*',
        timeout=15,
    )
    resp = caps[0].response_body
    data = resp.get('data', resp) if isinstance(resp, dict) else {}
    root = next((k for k, v in data.items() if isinstance(v, dict)), None)
    print(f'{len(caps)} GraphQL calls; first response root key: "{root}"')
    print(f'URL: {caps[0].url}')
# capture a category GraphQL call once, then replay it for different categories
with automation_browser() as s:
    caps = s.sniff(
        url='https://www.woolworths.com.au/shop/browse/fruit-veg',
        pattern='*woolworths.com.au/graphql*',
        timeout=15,
    )
    print(f'category API: {caps[0].url}')
    for category in ['dairy-eggs-fridge', 'bakery', 'meat-seafood']:
        r = s.replay(caps[0], body={**caps[0].request_body, 'url': f'/shop/browse/{category}'} if caps[0].request_body else None)
        data = r.get('data', {}).get('data', r.get('data', {})) if isinstance(r.get('data'), dict) else {}
        print(f'{category}: {list(data.keys())}')

goto() navigates the active page to a URL and waits for it to load. source() returns the current page as a dict ready for to_md().

with automation_browser() as s:
    s.goto('https://en.wikipedia.org/wiki/Web_scraping')
    page = s.source()          # {'html': ..., 'url': ...}
    print(to_md(page, sel='.mw-parser-output > p')[:300])

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

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

# 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)