Принципно би могло да се прочете съдържанието на която и да е страница като стринг и след това да се действа подобно на решението на
@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 можеш да си манипулираш номерата както там решиш