一键导入
cinemart-shinjuku
Platform rules, page structure, and date extraction for the シネマート新宿 (Cinemart Shinjuku) scraper
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Platform rules, page structure, and date extraction for the シネマート新宿 (Cinemart Shinjuku) 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 | cinemart_shinjuku |
| description | Platform rules, page structure, and date extraction for the シネマート新宿 (Cinemart Shinjuku) scraper |
| applyTo | scraper/sources/cinemart_shinjuku.py |
| Field | Value |
|---|---|
| Site URL | https://www.cinemart.co.jp/theater/shinjuku/ |
| Tagline | アジアをもっと好きになる (Asia-focused) |
| Type | Static HTML — no JS rendering required |
| Auth | None |
| Rate Limit | time.sleep(0.5) between detail requests is sufficient |
| Source Name | cinemart_shinjuku |
| Source ID Format | cinemart_shinjuku_{6-digit-number} (e.g. cinemart_shinjuku_002491) |
--source key | cinemart_shinjuku |
Cinemart Shinjuku (新宿文化ビル6F・7F) is an Asia-focused art cinema. It screens Korean, Chinese, and other Asian films in addition to Taiwan films — a Taiwan keyword filter is always required.
| Event Field | Source |
|---|---|
raw_title | First <h2> in <main> |
start_date | First <p> in <main>: M月D日(曜)ロードショー |
end_date | None for regular releases; = start_date for 1日限定上映 |
location_name | Fixed: シネマート新宿 |
location_address | Fixed: 東京都新宿区新宿3丁目13番3号 新宿文化ビル6F・7F |
official_url | First external <a> with link text matching オフィシャルサイト / 公式サイト / official site in <main> |
is_paid | Always True |
price_info | None (no structured price on detail page) |
category | ["movie"] |
source_url | Movie detail page URL |
/theater/shinjuku/movie/)<a href="002491.html"> ← relative 6-digit link
<h2>霧のごとく</h2>
... description text ...
</a>
a[href] where href matches ^\d{6}\.html$urljoin(_LISTING_URL, href)/theater/shinjuku/movie/NNNNNN.html)<main>
<p>5月8日(金)ロードショー</p> ← FIRST <p> = release date
<h2>霧のごとく</h2> ← Movie title
<p>description...</p>
<p>あらすじ content...</p>
...
<h3>監督</h3>
<h3>キャスト</h3>
...
<dl>営業時間...</dl> ← SIDEBAR STARTS HERE — stop collecting
<dl>劇場案内 新宿区新宿3丁目...</dl>
<p> content when text contains _VENUE_STOP_WORDS"オープン時間", "先売り指定席", "次週タイムスケジュール", "新宿区新宿3丁目", "東京メトロ", "詳しくはこちら"Keywords: ["台湾", "Taiwan", "臺灣", "金馬"]
<main> text on detail page金馬 (Golden Horse Award) is included as a Taiwan-specific indicator.
First <p> in <main> contains the release date:
| Format | Parsed |
|---|---|
5月8日(金)ロードショー | start=5/8, end=None (ongoing) |
5月28日(木)1日限定上映 | start=end=5/28 (single day) |
4月17日(金)より限定開催! | start=4/17, end=None |
Year inference: month < today.month - 3 → use today.year + 1.
Extract the 6-digit number from the URL:
https://...shinjuku/movie/002491.html → cinemart_shinjuku_002491| Problem | Cause | Fix |
|---|---|---|
raw_description includes sidebar info | _VENUE_STOP_WORDS not matching | Check actual sidebar <p> text; update stop words |
| No events despite Taiwan movies present | Taiwan keywords not in listing text | Check listing <a> text; add keyword to _TAIWAN_KEYWORDS |
start_date is None | First <p> format changed | Check first <p> text on detail page; update regex in _parse_release_date |
| Listing returns 0 links | URL changed or ^\d{6}\.html$ pattern wrong | Check actual <a href> values on listing page |
After Phase 1 collects events via the listing/detail pages, Phase 2 enriches start_date, end_date, and business_hours from the online ticket schedule.
| Field | Value |
|---|---|
| Schedule URL | https://cinemart.cineticket.jp/theater/shinjuku/schedule |
| Function | _parse_schedule_page(session) → dict[normalized_title, ScheduleEntry] |
| Fuzzy match | _normalize_title(title) strips 【4K上映】, 〈特別版〉 etc. before matching |
business_hours format | "5/1(金)14:00・18:30\n5/2(土)10:30\n..." (one line per day) |
| Failure safe | try/except wraps Phase 2 entirely — Phase 1 results unaffected if schedule fails |
_normalize_title rules【...】 and 〈...〉 bracketed modifiers (e.g. 【4K上映】, 〈特別版〉)dict[normalized_title, ScheduleEntry] from the schedule pageraw_title and look up in the dictstart_date, end_date, business_hourslookup_movie_titles Integrationfrom movie_title_lookup import lookup_movie_titles (not relative)name_zh, name_en = lookup_movie_titles(title)name_zh=name_zh, name_en=name_en(None, None) if eiga.com lookup failsAdd new lessons here after debugging sessions.