как грабить яваскрипты

12
malls
На сайте с 08.08.2005
Offline
255
1118

Возник вопрос, может кто сталкивался:

имеем страницу:

_ttp://first.ru/page.php?param=blablabla

код страницы примерно такой:

<html>
<head>
<script src="/script.js"></script>
</head>

<body>

<textarea id=text></textarea>

<script>_make('text');</script>

</body>
</html>

т.е. в зависимости от blablabla формируется некий script в котором содержится некая переменная, которая функцией _make('text');, подставляется в поле text на странице.

Вопрос можно ли внешним парсящим скриптом с сервака _ttp://second.ru, передавая первому серверу параметр blablabla "зацепить" как-нибудь содержимое переменной text, не реализуя свой браузер?

Примеров в сети масса, например те же сервисы Гугла, типа G.Suggest или G.Translate.

Пробовал кто-нибудь? Получалось ли?

ЗЫ: Про корректность такого парсинга прошу не распространяться, сейчас интересует только вопрос о возможности технической реализации.

V2D2
На сайте с 02.07.2007
Offline
67
#1

конечно возможно, вызываете _ttp://first.ru/script.js и все.

что дать конкретный совет надо более конкретный пример.

malls
На сайте с 08.08.2005
Offline
255
#2
region15:
конечно возможно, вызываете _ttp://first.ru/script.js и все.
что дать конкретный совет надо более конкретный пример.

Каким образом? Так что ли?

_ttp://first.ru/script.js?param=blablabla

так он этого не поймет!

Потому как обработчиком param=blablabla является:

_ttp://first.ru/page.php

V2D2
На сайте с 02.07.2007
Offline
67
#3

js - исполняется на стороне пользователя, php - на стороне сервера. param=blablabla - параметр для исполнения на сервере.

либо скиньте конкретный пример (можно в личку если не хотите палить), либо я не понимаю в чем трабла.

CE
На сайте с 30.01.2008
Offline
73
#4

Ну то, что здесь без браузера не обойтись - это факт. Но если свой скрипт вы собираетесь запускать через браузер, то теоретически можно загрузить ту страницу и вставить ее в свою (ещё на своем сервере), своей передать параметр в точно таком же виде. И если в том скрипте нет проверки на принадлежность домену, то после загрузки в браузер - получите содержимое textarea (а чтоб не видеть той страницы - попробовать сделать это все в невидимом div). Все это ИМХО теоретически :), сам не пробовал

malls
На сайте с 08.08.2005
Offline
255
#5
region15:
param=blablabla - параметр для исполнения на сервере.

Вы читаете???

malls:
обработчиком param=blablabla является:
_ttp://first.ru/page.php

Или нет?

Я Вам постом раньше о том же и сказал!

Вопрос в том как получить не просто JS (абы какой), а именно тот, который составлен сервером специально под конкретный запрос! Т.к. в зависимости от запросов содержание этой скриптины меняется.

Примеров я привел как минимум два:

Google.Suggest и Google.Translate

Если нужно еще могу конечно дополнить этот список...

P
На сайте с 08.03.2007
Offline
250
#6

Можно потрудиться и написать для firefox плагин, который будет делать всё что угодно. Например, Scrapbook отлично грабит такие сайты - но ему не удастся подставить параметры, он просто может сохранить дерево файлов. Есть Greasemonkey - он может страницу поменять при загрузке. Что-то из них, наверно, моэжно сконструировать.

malls
На сайте с 08.08.2005
Offline
255
#7

Greasemonkey дофига чего может - но мне серверный вариант интересен. :(

Shtogrin
На сайте с 02.11.2006
Offline
95
#8

malls, Если сам функционал не реализован на js, то в каждом конкретном случае можно сформировать запрос к серверу и получить нужные данные. Если результат формируется только на js клиента, то без интерпретации js не обойтись.

Тот же G.Translate прекрасно работал через POST, по крайней мере месяца три назад.

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
malls
На сайте с 08.08.2005
Offline
255
#9
Shtogrin:
Тот же G.Translate прекрасно работал через POST, по крайней мере месяца три назад.

Подробнее можно?

Shtogrin
На сайте с 02.11.2006
Offline
95
#10

$url="http://www.google.com/translate_t?langpair=en|ru";
$arguments["RequestMethod"]="POST";
$arguments["PostValues"]=array(
"text"=>"English text",
"langpair"=>"en|ru",
"hl"=>"en",
"ie"=>"UTF8",
);
$arguments["Referer"]="http://www.google.com/translate_t?langpair=en|ru";

В результате запроса во втором textarea (name=utrans) - результат перевода. Сейчас тоже работатет, пока ничего они не накрутили.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий