بنقرة واحدة
eiga-com
Platform rules, per-theater listing strategy, and Taiwan filter for the 映画.com 台湾映画 scraper
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Platform rules, per-theater listing strategy, and Taiwan filter for the 映画.com 台湾映画 scraper
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Planning principles, model selection, and scope rules for the Architect agent
Implementation rules for database migrations, Python scrapers, and Next.js web for the Engineer agent
BaseScraper contract, field rules, and Peatix-specific conventions for the Scraper Expert agent
Scraper test execution rules, output validation criteria, and report format for the Tester agent
BaseScraper contract, field rules, and Peatix-specific conventions for the Scraper Expert agent
Platform rules and field mappings for the 誠品生活日本橋 (eslite spectrum Nihonbashi) scraper
| name | eiga_com |
| description | Platform rules, per-theater listing strategy, and Taiwan filter for the 映画.com 台湾映画 scraper |
| applyTo | scraper/sources/eiga_com.py |
| Field | Value |
|---|---|
| Site URL | https://eiga.com |
| Rendering | Static HTML — no JS required |
| Auth | None |
| Rate limit | 0.5 s per movie, 0.3 s per area/theater page |
| Source name | eiga_com |
| Source ID format | eiga_com_{movie_id}_{theater_id} (e.g. eiga_com_82162_3018) |
https://eiga.com/search/%E5%8F%B0%E6%B9%BE/movie/ (and /2/, /3/ up to 5 pages)today - 90 days ≤ pub_date ≤ today + 180 daysOne event is created per theater (not per movie):
/movie/{id}/theater/ → area links
└─ /movie-area/{id}/{pref}/{area}/ → div.movie-schedule blocks (per theater)
└─ div.more-schedule a.icon.arrow → /movie-theater/{id}/{pref}/{area}/{theater_id}/
└─ table.theater-table → 住所 row
source_id: eiga_com_{movie_id}_{theater_id} — stable across weekly runs (upserts update end_date)
start_date: movie's 劇場公開日 (p.date-published strong)
end_date: last td[data-date] in the current week's schedule (updated each run via upsert)
Fallback: if /movie/{id}/theater/ returns no area links, emit one movie-level event with location_name=None and source_id=eiga_com_{movie_id}
<ul class="row list-tile">
<li class="col-s-3">
<a href="/movie/82162/">
<p class="title">台湾ハリウッド</p>
<small class="time">2026年4月25日</small>
</a>
</li>
</ul>
<h1 class="page-title">台湾ハリウッド</h1>
<p class="date-published"><strong>2026年4月25日</strong> 劇場公開日</p>
<p class="data">2013年製作/124分/G/台湾
原題または英題:…
配給:…
</p>
<!-- Synopsis: first <p> without class and len > 80 -->
/movie-area/{id}/{pref}/{area}/)<div class="movie-schedule" data-theater="K's cinema" data-title="台湾ハリウッド">
<table class="weekly-schedule">
<td data-date="20260427">…</td> <!-- YYYYMMDD format -->
<td data-date="20260428">…</td>
</table>
</div>
<div class="more-schedule">
<a class="icon copy" href="/movie-theater/82162/13/130201/3018/mail/">コピー</a>
<a class="icon print" href="/movie-theater/82162/13/130201/3018/print/">印刷</a>
<a class="icon arrow" href="/movie-theater/82162/13/130201/3018/">すべてのスケジュールを見る</a>
</div>
/movie-theater/{id}/{pref}/{area}/{theater_id}/)<table class="theater-table">
<tr><th scope="row">住所</th><td>東京都新宿区新宿3-35-13 3F<br/><a>映画館公式ページ</a></td></tr>
</table>
Search URL %E5%8F%B0%E6%B9%BE = 台湾 — all results are inherently Taiwan films.
Additional filter: pub_date within [today-90, today+180] to exclude very old releases.
| Event field | Source |
|---|---|
name_ja | h1.page-title (or listing p.title as fallback) |
raw_title | same as name_ja |
source_id | eiga_com_{movie_id}_{theater_id} |
source_url | /movie-area/{id}/{pref}/{area}/ URL |
start_date | p.date-published strong → pub_date (movie release date) |
end_date | last td[data-date] in weekly schedule |
location_name | div.movie-schedule[data-theater] |
location_address | table.theater-table th="住所" + td (a-tags stripped) |
raw_description | 開催日時: start〜end\n\np.data text\n\nsynopsis |
category | ["movie"] |
is_paid | True |
small.time format: "2026年4月25日" → _DATE_RE extracts Y/M/Dp.date-published strong format: sametd[data-date] = "YYYYMMDD" → _yyyymmdd_to_date()raw_description prefix: 開催日時: YYYY年MM月DD日〜YYYY年MM月DD日\n\nend_date current via upsert.| Purpose | Selector |
|---|---|
| Theater name | div.movie-schedule[data-theater] |
| Schedule dates | div.movie-schedule td[data-date] |
| All-schedule link | div.more-schedule a.icon.arrow[href*='/movie-theater/'] |
| Theater ID | _THEATER_ID_RE on arrow link href |
| Address row | table.theater-table th:contains("住所") + td |
| Issue | Cause | Fix |
|---|---|---|
| 0 theater events, 1 fallback event | theater() page has no area links (movie not yet released) | Fallback event is emitted — correct behavior |
location_address includes "映画館公式ページ" | <a> not stripped from td before get_text() | Call td.find_all("a") → a_tag.decompose() before get_text() |
location_address is JS code | Regex matched JS-embedded 東京都 | Use table.theater-table approach, not page-wide regex |
theater_id = "unknown" | No a.icon.arrow in more-schedule | Check if area page structure changed |
| Old Taiwan films returned | Pub date filter window too wide | Adjust _LOOKBACK_DAYS / _LOOKAHEAD_DAYS |
| 403 errors | Missing User-Agent | Session headers include Chrome UA |
ul.row.list-tile li.col-s-3 selectors.source_id.