{"common": {"Name": "Google Maps Place Config", "Description": "Extracts structured place data from Google Maps place detail pages (/maps/place/...). Selectors derived from EETree-captured DOM. Uses [class*=] selectors compatible with EETree QuerySelectorAll.", "AllowedSelectors": [{"Name": "PlaceName", "Description": "Place name heading (e.g., 'T&T Supermarket Bellevue')", "QuerySelector": "h1[class*=\"DUwDvf\"]", "RequiredSection": true, "NodesToDrop": []}, {"Name": "PlaceHeaderBlock", "Description": "Header block: name, rating (4.1), review count, price level, category in one div", "QuerySelector": "div[class*=\"TIHn2\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceRating", "Description": "Star rating with aria-label '4.1 stars' (class ceNzKf)", "QuerySelector": "span[class*=\"ceNzKf\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceCategory", "Description": "Primary category button (e.g., 'Asian grocery store')", "QuerySelector": "button[class*=\"DkEaL\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceInfoButtons", "Description": "Contact info buttons \u00e2\u20ac\u201d address, phone, plus code, located-in. Each has data-item-id and aria-label with the value.", "QuerySelector": "button[class*=\"CsEnBe\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceInfoLinks", "Description": "Contact info links \u00e2\u20ac\u201d website, menu. Has data-item-id='authority' and aria-label with domain.", "QuerySelector": "a[class*=\"CsEnBe\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceInfoRows", "Description": "Individual info text rows \u00e2\u20ac\u201d address text, phone text, website text (class rogA2c)", "QuerySelector": "div[class*=\"rogA2c\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceOpenStatus", "Description": "Current open/closed status (e.g., 'Open \u00c2\u00b7 Closes 11 PM')", "QuerySelector": "span[class*=\"ZDu9vd\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceHoursRows", "Description": "Individual day hours rows (e.g., 'Monday, 9 AM\u00e2\u20ac\u201c11 PM'). Each button has data-value with hours.", "QuerySelector": "button[class*=\"mWUh3d\"]", "RequiredSection": false, "NodesToDrop": []}, {"Name": "PlaceAccessibility", "Description": "Accessibility features (e.g., 'Wheelchair accessible entrance')", "QuerySelector": "span[class*=\"wmQCje\"]", "RequiredSection": false, "NodesToDrop": []}], "RegexToScrub": [], "AllowedUrlParams": {"UrlParams": [{"Name": "entry"}], "UrlSiteParams": [], "UrlParamWithValue": [], "UrlRefs": []}, "NodesToDrop": [{"Name": "ReviewText", "Description": "User review text content contains personal opinions", "QuerySelector": "span[class*=\"wiI7pd\"]", "ReplaceWord": "###PII-REVIEW-TEXT###", "PositiveSelectors": [], "NegativeSelectors": []}, {"Name": "ReviewerInfo", "Description": "Reviewer profile info (name, Local Guide badge, review count)", "QuerySelector": "button[class*=\"al6Kxe\"]", "ReplaceWord": "###PII-REVIEWER###", "PositiveSelectors": [], "NegativeSelectors": []}, {"Name": "ReviewActions", "Description": "Review action buttons (like, report)", "QuerySelector": "button[class*=\"PP3Y3d\"]", "ReplaceWord": "", "PositiveSelectors": [], "NegativeSelectors": []}, {"Name": "ReviewPhotos", "Description": "Photos attached to reviews", "QuerySelector": "button[class*=\"Tya61d\"]", "ReplaceWord": "", "PositiveSelectors": [], "NegativeSelectors": []}, {"Name": "UserPhotos", "Description": "User-contributed photo thumbnails with profile images", "QuerySelector": "button[class*=\"WEBjve\"]", "ReplaceWord": "###PII-PHOTO###", "PositiveSelectors": [], "NegativeSelectors": []}, {"Name": "SponsoredContent", "Description": "Sponsored/ad content in the place panel", "QuerySelector": "h1[class*=\"kpih0e\"]", "ReplaceWord": "###AD-CONTENT###", "PositiveSelectors": [], "NegativeSelectors": []}], "NetworkInterception": {"InterceptRequestHostName": "google", "InterceptRequestPaths": [{"Path": "/maps/preview/place", "ResponseMimeType": "application/json"}], "JsonExtraction": {"Fields": [{"Name": "CID_encoded", "JsonPath": "$[6][10]"}, {"Name": "place_id", "JsonPath": "$[6][78]"}, {"Name": "knowledge_id", "JsonPath": "$[6][89]"}, {"Name": "place_name", "JsonPath": "$[6][11]"}, {"Name": "structured_snippet", "JsonPath": "$[6][18]"}, {"Name": "place_category", "JsonPath": "$[6][13]"}, {"Name": "place_category_id", "JsonPath": "$[6][76]"}, {"Name": "address", "JsonPath": "$[6][2]"}, {"Name": "address_neighborhood", "JsonPath": "$[6][14]"}, {"Name": "address_city_state", "JsonPath": "$[6][166]"}, {"Name": "address_country", "JsonPath": "$[6][243]"}, {"Name": "address_full", "JsonPath": "$[6][39]"}, {"Name": "address_components", "JsonPath": "$[6][82]"}, {"Name": "address_detailed", "JsonPath": "$[6][183][1]"}, {"Name": "plus_code_compact", "JsonPath": "$[6][183][2][1][0]"}, {"Name": "plus_code_area", "JsonPath": "$[6][183][2][2][0]"}, {"Name": "timezone", "JsonPath": "$[6][30]"}, {"Name": "latitude", "JsonPath": "$[6][9][2]"}, {"Name": "longitude", "JsonPath": "$[6][9][3]"}, {"Name": "phone", "JsonPath": "$[6][178][0][0]"}, {"Name": "phone_E164", "JsonPath": "$[6][178][0][3]"}, {"Name": "language", "JsonPath": "$[6][110]"}, {"Name": "website", "JsonPath": "$[6][7][0]"}, {"Name": "website_domain", "JsonPath": "$[6][7][1]"}, {"Name": "rating", "JsonPath": "$[6][4][7]"}, {"Name": "review_count", "JsonPath": "$[6][4][8]"}, {"Name": "rating_distribution", "JsonPath": "$[6][175][3]"}, {"Name": "price_level", "JsonPath": "$[6][4][2]"}, {"Name": "price_level_text", "JsonPath": "$[6][4][10]"}, {"Name": "hours_weekly_schedule", "JsonPath": "$[6][203][0]"}, {"Name": "hours_summary", "JsonPath": "$[6][203][1][4][0]"}, {"Name": "extensions", "JsonPath": "$[6][100][1]"}, {"Name": "popular_topics", "JsonPath": "$[6][153]"}, {"Name": "time_spent", "JsonPath": "$[6][117][0]"}, {"Name": "merchant_description", "JsonPath": "$[6][154]"}, {"Name": "maps_url", "JsonPath": "$[6][42]"}, {"Name": "photo_url", "JsonPath": "$[6][157]"}, {"Name": "verified_flag", "JsonPath": "$[6][61]"}, {"Name": "open_status_flag", "JsonPath": "$[6][67]"}, {"Name": "sub_businesses", "JsonPath": "$[6][118]"}]}}, "SpaSerp": {"SearchRequestHostName": "google", "SearchRequestSearchPaths": [{"SearchRequestSearchPath": "/maps/preview/place"}], "SearchResponseMimeType": "application/json", "SearchResultsQuerySelector": "div[id=\"content_left\"]", "MinimumSearchResultsOnPageForLogging": 1}}}