Извлечение исходного кода скрипта JavaScript

#javascript #html #screen-scraping #web-scraping

#javascript #HTML #очистка экрана #очистка веб-страниц

Вопрос:

Я делал некоторую очистку, и на некоторых веб-сайтах я нашел ссылки на JS, подобные этому:

 <script type="text/javascript">     
    unescape(""));
</script>
  

В таких случаях извлечь код скрипта тривиально (просто перейдите по ссылке). Но как мне получить код в подобных случаях:

 <select ID="Spinner" class="text" onchange="javascript:IWantTheCodeOfThis();">
  

Возможно ли это вообще, или они хранятся на стороне сервера без доступа для клиента?

Ответ №1:

JavaScript всегда хранится на стороне сервера, но выполняется на стороне клиента, поэтому браузер должен получить доступ к нему в какой-то момент (в отличие, например, от PHP-кода).

То, что вы опубликовали, является вызовом JS-функции, поэтому функция «IWantTheCodeOfThis» должна находиться в одном из включенных файлов, которые «тривиальны для извлечения» 🙂

Ответ №2:

Вы могли бы использовать Chrome или Safari для работы с консолью и просмотра ресурсов. Вы также можете ввести IWantTheCodeOfThis (без ()) в консоли, и вы, вероятно, увидите исходный код функции.

Ответ №3:

Вовсе нет. Любой доступ к Javascript уже должен быть на клиенте.

Для поиска местоположения функции рекомендуется использовать отладчик, подобный Firebug или Chrome developer tools . Оба явно показывают вам все доступные источники javascript на текущем сайте.

Ответ №4:

JavaScript выполняется на стороне клиента. Всегда.

IWantTheCodeOfThis() — это функция, которая должна быть в одном из JavaScript, загружаемых браузером. В большинстве новых браузеров есть некоторое время «инспектор», «меню разработки» или «инструменты разработчика», из которых вы можете просмотреть все загруженные скрипты и даже выполнить поиск по ним. Это есть во всех Safari, Chrome и Internet Explorer 8/9. В Firefox вы можете использовать Firebug.

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