Semisonic
@Semisonic
Разработчик, выдумщик, неравнодушный человек

Получение и парсинг HTML, отправка JSON-запросов, Tor-анонимизация — помогите определиться с инструментами

Всем привет!

В результате далёких от ИТ-мира обстоятельств и природной любознательности имею необходимость решить одну на вид простую, но специфическую задачу. Вкратце, нужно периодически запрашивать страницу с удалённого сервера, анализировать полученный HTML (выдрать несколько лежащих в известном месте ссылок, вычленить из этих ссылок лежащие в известном месте куски), после чего на основе результатов анализа и некоторой внутренней логики отсылать обратно через локальный Tor-прокси JSON-запрос известной формы.

Не владею скиллами веб-разработки вообще, но имею программистский опыт и желание учиться. Посему буду благодарен уже реализовавшимся веб-разработчикам и просто осведомлённым товарищам за идеи и мысли по поводу инструментов, с помощью которых эту задачу можно было бы решить. Решение не обязательно должно быть универсальным и красивым, сгодятся и костыли, с помощью которых можно относительно быстро сделать рабочий вариант.

Лично мне пришли в голову два разных направления решения. Первое — JS-скрипт, который я мог бы запустить изнутри Firefox. Парсинг HTML, отправка JSON-запросов тогда осуществлялись бы скриптом, а работу с Tor можно было бы реализовать, соответствующим образом настроив FF. Но, насколько я понял, чистым JS'ом нельзя получить код удалённой страницы.
Второе — это написание какого-нибудь скрипта на PHP или Python, делавшего бы всю работу. Гугление показало, что принципиально задача разрешима. Но не могу определиться, что именно использовать; плюс непонятно, как использовать Tor в этом случае.

В общем, если кто-то когда-то делал нечто подобное, поделитесь опытом, а уж в деталях я постараюсь сам разобраться =).

Спасибо!
  • Вопрос задан
  • 5742 просмотра
Пригласить эксперта
Ответы на вопрос 1
@WEBIVAN
На php
$ch = curl_init();
//Получаем нужную страницу в переменную $data
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data=curl_exec($ch);
curl_close($ch);
<!-- тут пишем внутреннюю логику, json ложим, например в переменную $json -->
$ch = curl_init(); 
//Куда слать
curl_setopt($ch, CURLOPT_URL, "http://example.net"); 
//IP и порт тор прокси
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:8080"); 
//Логин пароль прокси, если есть
curl_setopt($curl, CURLOPT_PROXYUSERPWD,' username:pass'); 
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); 
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$json);
curl_exec($ch); 
curl_close($ch);

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы