Est. MMXXV · lrscraper The Law Review Reporter Live

A continuous record of the open collection of American legal scholarship

Vol. II Wednesday, September 23, 2026 № 266

Scraper implementation

southdakota_scraper

South Dakota Law Review · mapped to registry #388

Implementation identity
scrapers/southdakota_scraper.py
scriptbepressCLI entrypoint
partial
Latest status
partial
Run #46184
Latest runtime
58.6s
2026-09-20T22:21:56+00:00
Latest PDFs
0
70 duplicates skipped
Uploads pending
0
Queue clear or unavailable
Run history
13
Returned by current limit

Definition

Registry metadata for this implementation

scraper id
southdakota_scraper
canonical name
South Dakota Law Review
institution code
-
platform
bepress
base class
script
class name
-
module path
scrapers.southdakota_scraper
file path
scrapers/southdakota_scraper.py
has cli entrypoint
true
is abstract
false
updated at
2026-09-22 23:32:37

Operational mapping

Law review ownership and publication state

Registry health
DEGRADED
Last uploaded
2026-09-12 13:37:47
Registry sync
uabox:Law_Review_Project/south_dakota_law_review_20260912_132152.zip
Latest error
ACCESS_RESTRICTED: Explicit access challenge (HTTP 403); retained for later retry

Run history

Runs associated with law review #388; diagnostics expand in place.

13 returned · show 200
Run Status Started Runtime Result Error / diagnostics Logs
#46184 partial 2026-09-20T22:21:56+00:00ended 2026-09-20T22:22:54+00:00 58.6s 0 PDF 70 skipped 3 errors digital_commons_waf_partial: ACCESS_RESTRICTED: Explicit access challenge (HTTP 403); retained for later retry
Run metadata
{"automation_cycle_id": 265057, "canonical_name": "South Dakota Law Review", "child_pid": 348885, "discovery_coverage": {"capped": true, "discovery_complete": false, "known_units": 188, "mode": "balanced", "remaining_units": 143, "scope": "https://red.library.usd.edu/sdlrev/", "selected_units": 25, "visited_this_run": 25, "visited_units": 45}, "download_queue": {"due": 223, "pending": 226, "retries": 3, "scope": "SouthDakotaLawReviewScraper:South Dakota Law Review", "waiting": 3}, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-09-20T22:22:26+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-09-20T22:21:56+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1789942916_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1789942916_southdakota_scraper.out.log", "timeout_minutes": 45, "waf_blocked": true}
#45901 partial 2026-09-13T22:17:17+00:00ended 2026-09-13T22:17:37+00:00 19.5s 0 PDF 285 skipped 3 errors digital_commons_waf_partial: ACCESS_RESTRICTED: Explicit access challenge (HTTP 403); retained for later retry
Run metadata
{"automation_cycle_id": 251579, "canonical_name": "South Dakota Law Review", "child_pid": 2109025, "discovery_coverage": {"capped": true, "discovery_complete": false, "known_units": 188, "mode": "balanced", "remaining_units": 163, "scope": "https://red.library.usd.edu/sdlrev/", "selected_units": 25, "visited_this_run": 25, "visited_units": 25}, "download_queue": {"due": 14, "pending": 17, "retries": 3, "scope": "SouthDakotaLawReviewScraper:South Dakota Law Review", "waiting": 3}, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-09-13T22:17:17+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-09-13T22:17:17+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1789337837_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1789337837_southdakota_scraper.out.log", "timeout_minutes": 45, "waf_blocked": true}
#45598 partial 2026-09-13T10:36:07+00:00ended 2026-09-13T10:38:08+00:00 120.8s 0 PDF 33 skipped 0 errors partial_discovery: BROKEN_NETWORK: Digital Commons curl transport exit 28: https://red.library.usd.edu/sdlrev/vol71/iss2/
Run metadata
{"automation_cycle_id": 250623, "canonical_name": "South Dakota Law Review", "child_pid": 994356, "discovery_coverage": {"capped": true, "discovery_complete": false, "known_units": 188, "mode": "balanced", "remaining_units": 185, "scope": "https://red.library.usd.edu/sdlrev/", "selected_units": 25, "visited_this_run": 3, "visited_units": 3}, "discovery_problem": "BROKEN_NETWORK: Digital Commons curl transport exit 28: https://red.library.usd.edu/sdlrev/vol71/iss2/", "download_queue": {"due": 0, "pending": 0, "retries": 0, "scope": "SouthDakotaLawReviewScraper:South Dakota Law Review", "waiting": 0}, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-09-13T10:38:07+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-09-13T10:36:07+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1789295767_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1789295767_southdakota_scraper.out.log", "timeout_minutes": 45}
#44743 partial 2026-08-14T05:45:42+00:00ended 2026-08-14T05:57:27+00:00 704.3s 15 PDF 278 skipped 7 errors digital_commons_waf_partial: Digital Commons WAF Block (HTTP 403) for https://red.library.usd.edu/context/sdlrev/article/4432/viewcontent/
Run metadata
{"automation_cycle_id": 154806, "canonical_name": "South Dakota Law Review", "child_pid": 3137287, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-08-14T05:57:12+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-08-14T05:45:42+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1786686342_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1786686342_southdakota_scraper.out.log", "timeout_minutes": 45, "waf_blocked": true}
#43993 no new content 2026-07-14T19:08:44+00:00ended 2026-07-14T19:10:05+00:00 81.3s 0 PDF 301 skipped 0 errors No reported error
Run metadata
{"automation_cycle_id": 43988, "canonical_name": "South Dakota Law Review", "child_pid": 3069650, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-07-14T19:09:44+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-07-14T19:08:44+00:00", "run_kind": "scheduled", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1784056124_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1784056124_southdakota_scraper.out.log", "timeout_minutes": 15}
#41088 no new content 2026-07-13T03:31:16+00:00ended 2026-07-13T03:32:09+00:00 52.9s 0 PDF 301 skipped 0 errors No reported error
Run metadata
{"automation_cycle_id": 37959, "canonical_name": "South Dakota Law Review", "child_pid": 3504811, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-07-13T03:31:46+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-07-13T03:31:16+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1783913476_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1783913476_southdakota_scraper.out.log", "timeout_minutes": 45}
#41052 timeout 2026-07-13T02:30:54+00:00ended 2026-07-13T03:31:15+00:00 -s 0 PDF 0 skipped 0 errors orchestrator_reaper: Marked stale running run as timeout (age=3621s; started=2026-07-13T02:30:54+00:00; heartbeat=2026-07-13T02:30:54+00:00)
Run metadata
{"automation_cycle_id": 37867, "canonical_name": "South Dakota Law Review", "child_pid": 3398030, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-07-13T02:30:54+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-07-13T02:30:54+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1783909854_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1783909854_southdakota_scraper.out.log", "timeout_minutes": 45}
#31519 timeout 2026-07-03T21:24:19+00:00ended 2026-07-03T22:09:19+00:00 2700.0s 0 PDF 0 skipped 0 errors timeout: Timeout after 45 minutes
Run metadata
{"automation_cycle_id": 28154, "canonical_name": "South Dakota Law Review", "child_pid": 3006661, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-07-03T22:09:19+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "metrics_source": "inferred_unique_files", "orchestrator": "lrscraper", "orchestrator_started_at": "2026-07-03T21:24:19+00:00", "returncode": null, "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1783113859_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1783113859_southdakota_scraper.out.log", "timeout_minutes": 45}
#31005 timeout 2026-07-02T01:04:25+00:00ended 2026-07-02T01:49:26+00:00 2700.0s 0 PDF 0 skipped 0 errors timeout: Timeout after 45 minutes
Run metadata
{"automation_cycle_id": 28061, "canonical_name": "South Dakota Law Review", "child_pid": 3688847, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-07-02T01:49:25+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "metrics_source": "inferred_unique_files", "orchestrator": "lrscraper", "orchestrator_started_at": "2026-07-02T01:04:25+00:00", "returncode": null, "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1782954265_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1782954265_southdakota_scraper.out.log", "timeout_minutes": 45}
#4393 success 2026-06-01T16:38:31+00:00ended 2026-06-01T16:39:49+00:00 77.5s 11 PDF 290 skipped 0 errors No reported error
Run metadata
{"automation_cycle_id": 1522, "canonical_name": "South Dakota Law Review", "child_pid": 63241, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-06-01T16:39:31+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-06-01T16:38:31+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1780331911_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1780331911_southdakota_scraper.out.log", "timeout_minutes": 45}
#3709 no new content 2026-05-01T19:59:15+00:00ended 2026-05-01T20:00:23+00:00 67.4s 0 PDF 307 skipped 0 errors No reported error
Run metadata
{"automation_cycle_id": 610, "canonical_name": "South Dakota Law Review", "child_pid": 993729, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-05-01T20:00:15+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-05-01T19:59:15+00:00", "run_kind": "scheduled_active", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1777665555_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1777665555_southdakota_scraper.out.log", "timeout_minutes": 45}
#2865 partial 2026-03-08T19:30:54+00:00ended 2026-03-08T19:35:48+00:00 293.9s 19 PDF 287 skipped 1 errors digital_commons_waf_partial: Digital Commons WAF Block (HTTP 403) for https://red.library.usd.edu/cgi/viewcontent.cgi?article=1119&context=sdlrev&download=1
Run metadata
{"canonical_name": "South Dakota Law Review", "child_pid": 2940845, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-03-08T19:35:24+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-03-08T19:30:54+00:00", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1772998254_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1772998254_southdakota_scraper.out.log", "timeout_minutes": 45, "waf_blocked": true}
#976 success 2026-02-06T19:24:09+00:00ended 2026-02-06T19:24:23+00:00 13.7s 2 PDF 23 skipped 0 errors No reported error
Run metadata
{"canonical_name": "South Dakota Law Review", "child_pid": 4130769, "file_path": "scrapers/southdakota_scraper.py", "heartbeat_at": "2026-02-06T19:24:09+00:00", "heartbeat_source": "orchestrator", "law_review_id": 388, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-06T19:24:09+00:00", "scraper_id": "southdakota_scraper", "script_path": "scrapers/southdakota_scraper.py", "stderr_path": "logs/orchestrator_runs/1770405849_southdakota_scraper.err.log", "stdout_path": "logs/orchestrator_runs/1770405849_southdakota_scraper.out.log", "timeout_minutes": 25}