원클릭으로
livepocket
Platform rules, search URL structure, dl field extraction, and Taiwan filter for the LivePocket(ライブポケット)e-ticket scraper
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Platform rules, search URL structure, dl field extraction, and Taiwan filter for the LivePocket(ライブポケット)e-ticket 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 | livepocket |
| description | Platform rules, search URL structure, dl field extraction, and Taiwan filter for the LivePocket(ライブポケット)e-ticket scraper |
| applyTo | scraper/sources/livepocket.py |
| Field | Value |
|---|---|
| Site URL | https://livepocket.jp/ |
| Search URL | /event/search?word=台湾&page=N |
| Rendering | Static HTML — no JavaScript required |
| Auth | None required |
| Rate limit | Polite — use REQUEST_DELAY = 0.5s between requests |
| Source name | livepocket |
| Source ID format | livepocket_{slug} — URL slug from /e/{slug} path (e.g. livepocket_hmvyt) |
| Event field | Source element |
|---|---|
raw_title | h1.heading01 — top-level event title |
start_date | dl.event-detail-info__list → div.event-detail-info__block where dt contains 開催日 → dd text, first YYYY年M月D日 match |
end_date | Same dd text — second date if range 〜 separator present; otherwise same as start_date |
location_name | 会場 dd — text before (都道府県) suffix |
location_address | 会場 dd — <span> after (都道府県); stripped of map link boilerplate |
raw_description | Composed: 開催日時: header + 会場: + 出演者: (if present) + div.event-detail__content main text |
price_info | div.event-detail-ticket-body — ¥ price strings joined with / |
is_paid | True unless price text contains 無料 or ¥0 / 0円 |
source_id | livepocket_{slug} |
Applied on full detail-page text (after fetching /e/{slug}).
TAIWAN_KEYWORDS = ["台湾", "Taiwan", "臺灣"]
台湾, Taiwan, 臺灣 (三組)The
dlclass isevent-detail-info__list, NOTevent-detail-info.
dl = soup.select_one("dl.event-detail-info__list")
The dt/dd pairs are wrapped in div.event-detail-info__block divs:
<dl class="event-detail-info__list">
<div class="event-detail-info__block">
<dt class="event-detail-info__title">
<span class="event-detail-info__date">開催日</span>
</dt>
<dd class="event-detail-info__data">2026年7月27日(月)</dd>
</div>
...
</dl>
Use _get_dd_text(dl, label) which iterates div.event-detail-info__block and checks dt.get_text().
There are two identical dl.event-detail-info__list blocks per page (desktop + mobile rendering). Always use select_one() to get the first.
Raw venue dd text format:
新宿MARZ (東京都)
東京都新宿区歌舞伎町2-45-1 第一常磐ビルB1
会場マップ・アクセス方法はこちら
location_name: text up to and including (都道府県) parenthetical — matched via _PREF_RE = re.compile(r"[((][^))]+[都道府県][))]")location_address: <span> text after the parenthetical; strip map link boilerplate"2026年7月27日(月)" → start_date = end_date"2026年6月27日(土)〜2026年6月28日(日)" → extract first and second YYYY年M月D日 matches(曜) parentheticals are stripped by the regex matching only \d{4}年\d{1,2}月\d{1,2}日Search pages return 404 when the page number exceeds the result count. The scraper breaks the loop cleanly on 404 via _fetch() warning + None return.
| Symptom | Likely Cause | Fix |
|---|---|---|
| 0 events found | dl.event-detail-info__list selector changed | Inspect page for new dl class; update selector and _get_dd_text block iterator |
start_date null | 開催日 label not found in dt text | Check HTML; the span child text may have changed (e.g. 開催日時) |
location_address null | Venue has no <span> for address (online event or no address listed) | Expected for online events |
| No events pass Taiwan filter | Search results page format changed | Inspect a.event-card[href^='/e/'] selector and badge logic |
| Price info blank | div.event-detail-ticket-body missing | Free events or old ticket format; is_paid falls back to None |
/t/) detection if any slip through the /e/ guard