Strony, które wymieniłeś posiadają najprawdopodobniej API, więc wykorzystaj np. wspomniany AJAX wysyłając request do API odbierając przy tym dane z tego Application Programming Interface.
Przykład w PHP bez korzystania z API:
<body style="background: darkolivegreen;">
<?php
function get_data_from_URL() : string {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // important
$data = curl_exec($ch);
curl_close($ch);
return (string)$data;
}
$xxx = (get_data_from_URL());
$dom = new DOMDocument();
$dom->loadHTML($xxx);
echo '<p>Tag h1: ' . ($dom->getElementsByTagName('h1')[0]->nodeValue) . '.</p>';
echo "<p>Link: " . ($dom->getElementsByTagName('a')[0]->getAttribute('href')) . '.</p>';
?>
</body>
Można też chyba zczytać plik zewnętrzny np. bajt po bajcie.
Pamiętaj, że takie coś może przestać działać w każdej chwili, ponieważ kod źródłowy może ulec zmianie. Przy API taka sytuacja nie powinna wystąpić, ale to zależy od ludzi tworzących API (np. nowe wersje API, starsze wersje niewspierane, nowe adresy URL, itp., zmiany, które spowodują zmianę u siebie w kodzie, by dostosować się pod API); chyba że są wyjątki.
Przykładowe API:
https://jsonapi.org/examples/
https://christianheilmann.com/2009/12/18/curl-your-view-source-of-the-web/
https://davidwalsh.name/curl-download
Jak działa mniej więcej API:
{
"data": [{
"type": "articles",
"id": "1",
"attributes": {
"title": "JSON:API paints my bikeshed!",
"body": "The shortest article. Ever.",
"created": "2015-05-22T14:56:29.000Z",
"updated": "2015-05-22T14:56:28.000Z"
},
"relationships": {
"author": {
"data": {"id": "42", "type": "people"}
}
}
}],
"included": [
{
"type": "people",
"id": "42",
"attributes": {
"name": "John",
"age": 80,
"gender": "male"
}
}
]
}
var requestURL = 'http://127.0.0.1:8000/forumpasja_informatyki/api.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json';
request.send();
request.onload = function() {
var superHeroes = request.response;
//console.log(superHeroes);
var part_search = window.location.search.split('=');
if(part_search[0] == '?data' && part_search[1] == 'title') {
console.log(superHeroes.data[0].attributes.title);
} else if(part_search[0] == '?data' && part_search[1] == 'created') {
console.log(superHeroes.data[0].attributes.created);
}
}
Gdy za URL wpiszesz ?data=title lub ?data=created ukażą ci się dane, które są w "API" (JSON).
Fragmenty kodu wyciągnęłem z tych niektórych poniższych stron:
https://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction
https://jsonapi.org/format/#introduction