When I load the page "http://proxydb.net" using cURL, or try to scrape the page, then the response body is empty
— потому что этот конкретный веб-сайт использует белый список пользовательских агентов, и если вашего пользовательского агента нет в белом списке, вы просто получите пустую страницу. предположительно все основные веб-браузеры занесены в белый список (Chrome, Internet Explorer, Edge, Safari, Opera и т. д.), но вот конкретный пользовательский агент, который занесен в белый список:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
(пользовательский агент Chrome 65, работающий в Windows 7 x64), и, таким образом, это работает:
curl 'http://proxydb.net/' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
что касается динамической загрузки контента, это обычно делается с помощью XMLHttpRequests или в старом коде iframes.
Apparently, the page is dynamically loaded using JavaScript.
- неправильно, эти ребята не загружают список прокси динамически, они встроены прямо в главную страницу (пока вы используете пользовательский агент из белого списка), скрыты как
var q = '42.86.831'.split('').reverse().join('');
var yy = /* */ atob('\x4d\x43\x34\x79\x4d\x54\x67\x3d'.replace(/\\x([0-9A-Fa-f]{2})/g, function() {
return String.fromCharCode(parseInt(arguments[1], 16))
}));
var pp = (3109 - ([] + [])) /**/ + (+document.querySelector('[data-numr]').getAttribute('data-numr')) - [] + [];
document.write('<a href="/' + q + yy + '/' + pp + '#http">' + q + yy + String.fromCharCode(58) + pp + '</a>');
(который в данном случае вместе с блоком data-numr переводится в 138.68.240.218:3128
- и он на самом деле зашифрован, а ключ дешифрования находится в блоке, похожем на <div style="display:none" data-numr="19"></div>
, здесь ключ был 19.)
person
hanshenrik
schedule
13.04.2018