NorthDakotaLawReviewScraper

North Dakota Law Review
maps to North Dakota Law Review (id 689)
Latest Status
no_new_content #4652
Latest Metrics
d=0  |  skip=96  |  err=0
t=2.1s
Implementation
LightBaseScraper
-
Law Review
Uploads Pending
0
Last Upload
2026-03-09 19:15:57
uabox:Law_Review_Project/north_dakota_law_review_20260309_191537.zip

Definition

scraper_id
NorthDakotaLawReviewScraper
canonical_name
North Dakota Law Review
institution_code
-
platform
-
base_class
LightBaseScraper
class_name
NorthDakotaLawReviewScraper
module_path
scrapers.north_dakota_law_review_scraper
file_path
scrapers/north_dakota_law_review_scraper.py
has_cli_entrypoint
true
is_abstract
false
discovered_at
2026-03-30 20:11:12
updated_at
2026-06-17 05:00:23

Run History

Showing 7 runs (law_review_id=689) — use ?limit=200 for more.
Run Status Start End Runtime Metrics Error / Details Logs
#4652 no_new_content 2026-06-01T19:16:20+00:00 2026-06-01T19:16:22+00:00 2.1s d=0  |  skip=96  |  err=0
discovered=96  |  processed=96
-
extra_json
{"automation_cycle_id": 1550, "canonical_name": "North Dakota Law Review", "child_pid": 136900, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-06-01T19:16:20+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-06-01T19:16:20+00:00", "run_kind": "scheduled_active", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1780341380_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1780341380_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#3978 no_new_content 2026-05-01T22:16:27+00:00 2026-05-01T22:16:29+00:00 2.3s d=0  |  skip=96  |  err=0
discovered=96  |  processed=96
-
extra_json
{"automation_cycle_id": 638, "canonical_name": "North Dakota Law Review", "child_pid": 1115737, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-05-01T22:16:27+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-05-01T22:16:27+00:00", "run_kind": "scheduled_active", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1777673787_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1777673787_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#3161 success 2026-03-09T17:32:27+00:00 2026-03-09T17:34:37+00:00 129.8s d=91  |  skip=5  |  err=0
discovered=96  |  processed=96
-
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 3869277, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-03-09T17:34:27+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-03-09T17:32:27+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1773077547_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1773077547_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#1483 success 2026-02-07T17:27:24+00:00 2026-02-07T17:27:28+00:00 3.9s d=5  |  skip=0  |  err=0
discovered=5  |  processed=5
-
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2440553, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:27:24+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:27:24+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770485244_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770485244_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 30}
stdout | stderr
#1482 no_items 2026-02-07T17:26:55+00:00 2026-02-07T17:26:55+00:00 0.4s d=0  |  skip=0  |  err=0
discovered=0  |  processed=0
no_items_reason: No issue links found on archive page: https://law.und.edu/law-review/archive.html
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2439559, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:26:55+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:26:55+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770485215_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770485215_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 30}
stdout | stderr
#1479 no_items 2026-02-07T17:11:53+00:00 2026-02-07T17:11:54+00:00 0.3s d=0  |  skip=0  |  err=0
discovered=0  |  processed=0
no_items_reason: No PDF links found on archive page: https://law.und.edu/law-review/archive.html
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2408042, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:11:53+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:11:53+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770484313_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770484313_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 6}
stdout | stderr
#1468 failed 2026-02-07T17:09:25+00:00 2026-02-07T17:09:25+00:00 0.2s d=0  |  skip=0  |  err=1
discovered=-  |  processed=-
process_exit_1: Process exited with code 1
traceback
Traceback (most recent call last):
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 149, in <module>
    asyncio.run(main())
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 145, in main
    await NorthDakotaLawReviewScraper().run()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 39, in __init__
    self.max_items = self._parse_positive_int(item_limit)
                     ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NorthDakotaLawReviewScraper' object has no attribute '_parse_positive_int'
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2402775, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:09:25+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:09:25+00:00", "returncode": 1, "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770484165_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770484165_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 6}
stdout | stderr

Runs (scraper_name = NorthDakotaLawReviewScraper)

These are runs recorded explicitly under this scraper_id.
Run Status Start End Runtime Metrics Error / Details Logs
#4652 no_new_content 2026-06-01T19:16:20+00:00 2026-06-01T19:16:22+00:00 2.1s d=0  |  skip=96  |  err=0
discovered=96  |  processed=96
-
extra_json
{"automation_cycle_id": 1550, "canonical_name": "North Dakota Law Review", "child_pid": 136900, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-06-01T19:16:20+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-06-01T19:16:20+00:00", "run_kind": "scheduled_active", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1780341380_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1780341380_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#3978 no_new_content 2026-05-01T22:16:27+00:00 2026-05-01T22:16:29+00:00 2.3s d=0  |  skip=96  |  err=0
discovered=96  |  processed=96
-
extra_json
{"automation_cycle_id": 638, "canonical_name": "North Dakota Law Review", "child_pid": 1115737, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-05-01T22:16:27+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-05-01T22:16:27+00:00", "run_kind": "scheduled_active", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1777673787_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1777673787_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#3161 success 2026-03-09T17:32:27+00:00 2026-03-09T17:34:37+00:00 129.8s d=91  |  skip=5  |  err=0
discovered=96  |  processed=96
-
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 3869277, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-03-09T17:34:27+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-03-09T17:32:27+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1773077547_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1773077547_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 45}
stdout | stderr
#1483 success 2026-02-07T17:27:24+00:00 2026-02-07T17:27:28+00:00 3.9s d=5  |  skip=0  |  err=0
discovered=5  |  processed=5
-
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2440553, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:27:24+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:27:24+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770485244_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770485244_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 30}
stdout | stderr
#1482 no_items 2026-02-07T17:26:55+00:00 2026-02-07T17:26:55+00:00 0.4s d=0  |  skip=0  |  err=0
discovered=0  |  processed=0
no_items_reason: No issue links found on archive page: https://law.und.edu/law-review/archive.html
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2439559, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:26:55+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:26:55+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770485215_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770485215_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 30}
stdout | stderr
#1479 no_items 2026-02-07T17:11:53+00:00 2026-02-07T17:11:54+00:00 0.3s d=0  |  skip=0  |  err=0
discovered=0  |  processed=0
no_items_reason: No PDF links found on archive page: https://law.und.edu/law-review/archive.html
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2408042, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:11:53+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:11:53+00:00", "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770484313_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770484313_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 6}
stdout | stderr
#1468 failed 2026-02-07T17:09:25+00:00 2026-02-07T17:09:25+00:00 0.2s d=0  |  skip=0  |  err=1
discovered=-  |  processed=-
process_exit_1: Process exited with code 1
traceback
Traceback (most recent call last):
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 149, in <module>
    asyncio.run(main())
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arbel/miniconda3/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 145, in main
    await NorthDakotaLawReviewScraper().run()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arbel/sites/lrscraper/scrapers/north_dakota_law_review_scraper.py", line 39, in __init__
    self.max_items = self._parse_positive_int(item_limit)
                     ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NorthDakotaLawReviewScraper' object has no attribute '_parse_positive_int'
extra_json
{"canonical_name": "North Dakota Law Review", "child_pid": 2402775, "file_path": "scrapers/north_dakota_law_review_scraper.py", "heartbeat_at": "2026-02-07T17:09:25+00:00", "heartbeat_source": "orchestrator", "law_review_id": 689, "orchestrator": "lrscraper", "orchestrator_started_at": "2026-02-07T17:09:25+00:00", "returncode": 1, "scraper_id": "NorthDakotaLawReviewScraper", "script_path": "scrapers/north_dakota_law_review_scraper.py", "stderr_path": "logs/orchestrator_runs/1770484165_NorthDakotaLawReviewScraper.err.log", "stdout_path": "logs/orchestrator_runs/1770484165_NorthDakotaLawReviewScraper.out.log", "timeout_minutes": 6}
stdout | stderr