dalasweb
Well-Known Member
Здравей!Принципно би могло да се прочете съдържанието на която и да е страница като стринг и след това да се действа подобно на решението на @hristonev. Но в случая ако решим да заредим директно линка, то няма телефонни номера, трябва преди това да сме цъкнали на някой план в браузъра, сигурно се сетват разни куки... кой знае. Любимото ми в такива случаи е Chrome Extension. Даже драснах такъв да се поупражнявам.
Значи по принцип тия разширения са уебаджийски файлове (html, css, js и други) пакетирани в .zip. Но в Chrome можеш да заредиш такова нещо от папка. Ето ти кода на файловете:
manifest.json
JSON:{ "name": "Simplytel Phones Reader", "version": "0.1", "manifest_version": 3, "action": { "default_popup": "popup.html", "default_title": "Click to get phone numbers" }, "permissions": [ "activeTab", "scripting" ] }
popup.html
HTML:<!DOCTYPE html> <html lang="en"> <head> <script src="popup.js"></script> </head> <body> <textarea id="phone-numbers" cols="18" rows="50"></textarea> </body> </html>
popup.js
JavaScript:function readPhoneNumbers() { const selector = '#WunschrufnummerBox > div > label' const elements = document.querySelectorAll(selector) let phoneNumbers = [] elements.forEach((element) => { phoneNumbers.push(element.innerText) }) return phoneNumbers } async function getCurrentTab() { const queryOptions = { active: true, lastFocusedWindow: true } // `tab` will either be a `tabs.Tab` instance or `undefined`. const [tab] = await chrome.tabs.query(queryOptions) return tab } async function executeFunctionOnTab(pageTab, fn) { const injectionResult = await chrome.scripting.executeScript({ target: { tabId: pageTab.id }, function: fn }) return injectionResult?.[0].result } async function start() { const currentTab = await getCurrentTab() const phoneNumbers = await executeFunctionOnTab(currentTab, readPhoneNumbers) document.getElementById('phone-numbers').value = phoneNumbers.sort().join('\n') } document.addEventListener('DOMContentLoaded', async function () { await start() })
Слагаш тия 3 файла в една папка, после отиваш в More Tools -> Extensions на Chrome, там има бутон Load unpacked, и съответно намираш папката. В разширенията трябва да ти се появи нещо такова:
Виж файлът 26342
После се връщаш в сайта и от дясно на адрес бара си пинваш разширението за да стои като бутонче. Това трябва да го знаеш как става, но за всеки случай - от тия иконки...
Виж файлът 26343
... дясната дето е като пъзел, намираш разширението (Simplytel Phones Reader), пинваш го и то се появява като лявата безлична сива иконка S.
Сега когато си на сайта с номрата само я цъкаш и те се появяват сортирани така:
Виж файлът 26344
И вече ако разбираш от JavaScript можеш да си манипулираш номерата както там решиш![]()
Дрилиша махнаха избора на телефонен номер, но конгастар все още го предлагат.
Твоя код не става за техния вариант с попъп.Или се лъжа?
натискаш Wunschrufnummer auswählen
важни са златните тел. номера