URLs loaded in pass 1 failed to connect in pass 2.
I vibe coded a scraper for my business, Scraping bulk urls. Two scripts, two stages:
Stage 1 Python + aiohttp. For each domain a 'GET https://domain\` then `GET http://domain\` if that fails. 50 concurrent requests n 12s timeout. Reads the first 10KB of the response, checks headers + HTML. This stage gets 750+ matches.
Stage 2 takes those 750 matches and does a deeper scrape per domain (looking for more info) using a longer 30s timeout, much lower concurrency (~10 at a time).
The confusing part: 97% of 750 urls which returned html in 12s in stage 1. Came back as "no html" in stage 2, with a longer timeout and way less concurrent load. I isolated a few of these and ran a single bare aiohttp request against them by themselves, no concurrency at all. Result: the connection dies at the raw TCP handshake. it never even completes the SYN/ACK, let alone gets to TLS or HTTP. Plain `curl` against the same domain gives the same result: connect timeout.