您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sort Google Maps places to find tops
// ==UserScript== // @name TOPs Google Maps Sort by Reviews // @name:zh-CN TOPs Google Maps Sort by Reviews // @namespace https://github.com/new4u // @version 1.3 // @description: Sort Google Maps places to find TOPs,Unlock the Secret to Finding the Best Local Spots with Our Google Maps Hack! // @description:zh-CN Sort Google Maps places to find TOPs,Unlock the Secret to Finding the Best Local Spots with Our Google Maps Hack! // @author new4u // @include *://encrypted.google.*/search* // @include *://*.google*/search* // @include *://*.google*/webhp* // @match *www.google.com/maps* // @grant none // @copyright 2015-2024, new4u // @license GPL-3.0-only // @description Sort Google Maps places to find tops // ==/UserScript== (function () { 'use strict'; let restaurantNameSelector = ".qBF1Pd.fontHeadlineSmall"; let ratingSelector = ".UY7F9"; let ratingCountSelector = ".e4rVHe.fontBodyMedium"; let priceSelector = ".e4rVHe.fontBodyMedium > span:nth-child(3)"; let cuisineSelector = ".W4Efsd span:first-child"; let openHoursSelector = ".W4Efsd span:last-child"; let restaurantTypeSelector = ".ah5Ghc.fontBodyMedium"; let titleSelector = "head > title"; function extractData() { let data = {}; let targetElements = document.querySelectorAll(".TFQHme + *"); for (let i = 0; i < targetElements.length; i++) { let element = targetElements[i]; let name = element.querySelector(restaurantNameSelector); if (name) { name = name.innerText; } else { name = null; } let rating = element.querySelector(ratingSelector); if (rating) { rating = rating.innerText; } else { rating = null; } let ratingCount = element.querySelector(ratingCountSelector); if (ratingCount) { ratingCount = ratingCount.innerText; } else { ratingCount = null; } let price = element.querySelector(priceSelector); if (price) { price = price.innerText; } else { price = null; } let cuisine = element.querySelector(cuisineSelector); if (cuisine) { cuisine = cuisine.innerText; } else { cuisine = null; } let openHours = element.querySelector(openHoursSelector); if (openHours) { openHours = openHours.innerText; } else { openHours = null; } let restaurantType = element.querySelector(restaurantTypeSelector); if (restaurantType) { restaurantType = restaurantType.innerText; } else { restaurantType = null; } data[name] = { rating: rating, ratingCount: ratingCount, price: price, cuisine: cuisine, openHours: openHours, restaurantType: restaurantType }; } let title = document.querySelector(titleSelector).innerText console.log(data); console.log(title); console.log(`Extracted ☆★${Object.keys(data).length}★☆ Spots`); // Create an array of restaurant names and ratings let ratingsArray = []; for (let name in data) { let rating = data[name].rating; if (rating) { // Remove all non-numeric characters except the decimal point from the rating string rating = rating.replace(/[^0-9.]/g, ''); // Convert the rating string to a number rating = Number(rating); } else { // Assign a zero rating to restaurants with no rating rating = 0; } ratingsArray.push([name, rating]); } // Sort the array by rating in descending order ratingsArray.sort(function (a, b) { return b[1] - a[1]; }); // Slice the first 10 elements of the array let top10 = ratingsArray.slice(0, 10); // Print the names and ratings of the top 10 restaurants for (let i = 0; i < top10.length; i++) { console.log(top10[i][0] + ": " + top10[i][1]); } } // Monitor the specific DOM element for updates let targetElement = document.querySelector("#QA0Szd > div > div > div.w6VYqd > div:nth-child(2)"); let previousInnerHTML = targetElement.innerHTML; setInterval(function () { let currentInnerHTML = targetElement.innerHTML; if (currentInnerHTML !== previousInnerHTML) { console.log("↓↓↓↓DOM element updated↓↓↓↓"); previousInnerHTML = currentInnerHTML; extractData(); // Call the extractData function when the DOM element updates } }, 3000); // Check every 1 second // Initial call to extractData extractData(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址