Files
Tirsvad 34e70b31dc MIL-005 live Amazon page (Step 4)
Delivers MIL-005 (lecture Step 4): the product URL comes from `PRODUCT_URL` (default: the lecture's Amazon page), price and title selectors and robot-check markers live in `constants.py`, and a robot-check page raises `RobotCheckError` with a clear message. The code does not try to solve or bypass the check.

Outcome on the live page (2026-10-28): Amazon returned HTTP 200 with a robot-check page and no price; the page is kept (tokens redacted) as a test fixture and shown in the README. Two live requests were made in total, one to inspect the response and one for the screenshot; there are no retries or loops.

Review: code against QC-PY-001 as RC-014 (Go, autonomous, not independent). 56 pytest tests (no network), ruff and mypy --strict pass.

Task: MIL-005#1
Task: MIL-005#2
Task: MIL-005#3
Task: MIL-005#4
Task: MIL-005#5
2026-10-28 14:48:21 +08:00

11 lines
553 B
HTML

<!DOCTYPE html>
<!-- Synthetic example of live Amazon product markup: a coupon span with class a-offscreen comes before the real price, which sits in .a-price. -->
<html lang="en-us">
<head><title>Amazon.com: Instant Pot</title></head>
<body>
<span id="productTitle"> Instant Pot Duo 7-in-1 </span>
<span class="a-size-base"><span class="a-offscreen">Save $5.00 with coupon</span></span>
<span class="a-price a-text-price a-size-medium apexPriceToPay"><span class="a-offscreen">$79.95</span><span aria-hidden="true">$79.95</span></span>
</body>
</html>