Принцип Javascript парсинга
Прощу прощения если запульнул не в тот раздел, не смог выбрать более подходящий.
Столкнулся с идеей парсинга сайта на Javascript. Имеется HTML страница с картинками. Нужно методом POST отправить: 1. код страницы 2. картинки (1-4 штуки, файлами) С 1 пунктов проблем я думаю не возникнет. Если действовать стандартными методами, то это фрейм который подгружает нужный УРЛ, после чего мы запрашиваем у него видимо innerHTML, или что-то другое, но думаю это не сложно. А на jQuery есть функция load() для получения кода страницы, думаю она даже лучше подойдет. Потом полученный код обрабатываю и ищу в нем адреса нужных картинок. И вот тут наверное главный вопрос, а как их прикрепить к отправке формы, как будто мы отправили через <input type="file" ... > ? ... Как я понял отправить методом POST не получится файлы, т.к. это нарушает принцип безопасности HTML. А имеет ли жизнь такой вариант: через какую-нить Javascript функцию получить код картинки (а-ля бинарный код или т.п.) его закинуть в <textarea>. А на стороне сервера обратно скомпилировать из него картинку? (картинки в формате jpg) |
Наверное, лучше сразу в сторону флеша копать.
|
Цитата:
а на Javascript возможно получить код картинки? чтобы потом перекодировать обратно на PHP... |
Цитата:
|
Можно только XHR'ом, на который действует ограничение по доменам.
|
Непонимаю зачем так ломать голову? Получаете адрес картинки и отправляете его серверу. На серверной стороне просто получаете данные get_file_contents и записываете на сервер. все. зачем еще чето мудрить?
|
greatilya,
картинки это каптча? |
Цитата:
да я уже понял... вначале "обломался" с картинками... потом оказывается и с фреймов инфу не получить.... придется парсить с сервера на динамическом ip... Всем спасибо! |
Цитата:
То что вы обломались не означает что вопрос не решаем, по поводу фреймов могу сказать что эту идиотскую мысль нужно откинуть сразу как только она придет. И уж тем более не понятно зачем отсылать на свой же по видимому локальный сервер, то что уже получено? |
Цитата:
|
Цитата:
|
Цитата:
написал парсинг некого сайта. Работает сам, абсолютно без моего участия. Парсинг должен работать постоянно, ~ целыми днями. Чтобы не получить бан на ip, сделал запросы к сайту раз в минуту. Парсил с 4 ip адресов. Через 3 дня работы скрипта забанили 3 ip адреса принадлежащих моему VPS серверу. 1 ip адрес моего локального компьютера не забанили, хотя с него шло не меньше запросов. Итого напрашивается вывод, что админы увидели что с тех ip адресов идет парсинг, т.к. запросы повторяются, и ip адрес принадлежит хостеру, а не обычному провайдеру домашнего интернета. Итого, я захотел релизовать систему, при которой: - захожу с любого ПК на свой сайт, открывается страница, на которой будет происходить парсинг нужной страницы силами JS(при этом возможность получить бан минимальна) - после все данные отправляются на мой сайт ... теперь уже ясно, что такую схему реализовать не получится... Цитата:
Устанавливать сервера (denwer) на все ПК с которых бы мог парсить нет возможности. Парсить через прокси, если чесно опыта в этом нет. Причем сайт который парсю, делает разную выдачу в зависимости от региона, поэтому при использовании прокси возможны всякие артефакты... |
Цитата:
|
B@rmaley.e><e,
Огромное спасибо за UserJS! Вы сами им пользовались, насколько сложен в освоении? PS: если разберусь, то выложу скрипты. |
greatilya, я пишу юзерскрипты под оперу, почитать можно тут: http://operafan.net/content/view/26/2/
В ФФ и хроме они тоже есть, но там они работают по-другому. |
B@rmaley.e><e,
С днем рождения вас! Крепкого здоровья, любви и море счастья! |
greatilya, меня так же интересует отсылка картинки средствами javascript (мой пост). Вы нашли решение своей проблемы?
|
larafyll,
сейчас двигаюсь в двух направлениях: 1 изучаю UserJS (застрял на том, что не могу выдернуть HTML код) 2 пытаюсь реализовать данные задачи на Delphi (не писал на нем уже оч давно, ищу пока) Я эту тему точно добью, вам в личку напишу, раз вам так интересна эта тема, также в этой теме выложу свои исходники, скрипты, программы... |
Если вам надо получить HTML код страницы, можно воспользоватся XMLHttpRequest'ом. Однако, если требуется "живой" HTML, он не поможет.
|
Да уже практически сделал на Delphi, мне там более понравилось это реализовывать, по крайней мере файлы там легче простого отправлять...
Вот пример как допишу свой код, выложу его, а на JS наверно не смогу реализовать... знаний не хватает... |
Задача была решена. Как и говорил уже не с помощью JS. Реализовано на языке C.
Если кому интересно, подробно описал на своем блоге. |
Цитата:
|
Цитата:
Конечно я понимаю что можно как-то на UserJS решить эту задачу... Но зачастую легче дать программку которые друзья будут запускать, нежели объяснить им про настройку в браузере UserJS и т.п. Причем каждый пользователь пользуется разными браузерами. |
Цитата:
|
Часовой пояс GMT +3, время: 01:39. |