Собственно сабж. Сама форма: Code: <form action="/cgi-bin/faq.cgi" method="post" name="frmSend" id="frmSend" enctype="multipart/form-data" style="margin:0;" onSubmit="alert ('!!!!'); return SendData();"><TABLE width="100%"> <TR> <TD class="label"><B class="red">*</B> Имя и фамилия</TD> <TD class="input"><INPUT name="name" type="text" class="wide" id="name" maxlength="255"></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Род деятельности</TD> <TD class="input"><INPUT name="title" type="text" class="wide" id="title" maxlength="255"></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Город проживания</TD> <TD class="input"><INPUT name="city" type="text" class="wide" id="city" maxlength="255"></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Контактный телефон</TD> <TD class="input"><INPUT name="phone" type="text" class="wide" id="phone" maxlength="255"></TD> </TR> <TR> <TD class="label">E-Mail</TD> <TD class="input"><INPUT name="email" type="text" class="wide" id="email" maxlength="255"></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Вопрос</TD> <TD class="input"><TEXTAREA name="question" cols="40" rows="5" class="wide" id="question" style="width:100%"></TEXTAREA><BR><SPAN class="footnote" style="padding-left:0px; ">не более 150-ти символов</SPAN></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Ответ</TD> <TD class="input"><TEXTAREA name="answer" cols="40" rows="5" class="wide" id="answer" style="width:100%" ></TEXTAREA></TD> </TR> <TR> <TD class="label"><B class="red">*</B> Откуда узнали о нас?</TD> <TD class="input"><INPUT name="source" type="text" class="wide" id="source" maxlength="255"></TD> </TR> <TR> <TD class="label">Фото</TD> <TD class="input"><INPUT name="photo" type="file" class="wide" id="photo" maxlength="255"></TD> </TR> <TR> <TD> </TD> <TD><DIV class="button"><A href="#" onClick="return SendData();">Отправить</A></DIV></TD> </TR> </TABLE> <br><span class="footnote red"><B>*</B> - обязательные для заполнения поля</span> </FORM> </TD> Также на сайте имеется следующий скрипт: Code: <script> function SendData() { if (document.frmSend.name.value == "") { window.alert("Вы не указали свое имя."); return false; } if (document.frmSend.name.value.length > 20) { window.alert("Поле \"Имя и фамилия\" не может содержать более 20 символов."); return false; } if (document.frmSend.title.value == "") { window.alert("Укажите, пожалуйста, род своей деятельности."); return false; } if (document.frmSend.city.value == "") { window.alert("Не указан город проживания."); return false; } if (document.frmSend.phone.value == "") { window.alert("Не указан телефон телефон."); return false; } if (document.frmSend.question.value == "") { window.alert("Вы не задали вопрос"); return false; } if (document.frmSend.question.value.length > 150) { window.alert("Вопрос слишком длинный. Постарайтесь уложиться в 150 символов."); return false; } if (document.frmSend.answer.value == "") { window.alert("Вы забыли дать ответ на вопрос."); return false; } if (document.frmSend.answer.value.length > 120) { window.alert("Ответ слишком длинный. Постарайтесь уложиться в 120 символов."); return false; } if (document.frmSend.source.value == "") { window.alert("Укажите, пожалуйста, источник Вашей информации."); return false; } return frmSend.submit(); } </script> Нужно, чтобы отправилось 15к-20к запросов, с данными: text1, text2... соответственно в полях со звездочками. Без проксей и каптч. Как такое реализовать?
Code: import urllib2, urllib urllib2.install_opener(urllib2.build_opener()) params = {'name':'Свое значение', 'title':'Свое значение', 'city':'Свое значение', 'phone':'Свое значение', 'email':'Свое значение', 'question':'Свое значение', 'answer':'Свое значение', 'source':'Свое значение'} result = urllib2.urlopen('www.DOMAIN.com/cgi-bin/faq.cgi',urllib.urlencode(params)).read() result оставляю на твое усмотрение, в дальнейшем можно чекать ответ от сервера
lo0 Я, признаться, в языках программирования не силен, буду благодарен, если разъяснишь, что с этим надо делать, или дашь свою асю..
Можно в ПМ писать, помогу 1. Сохраняешь все это дело в файл file_nbame.py 2. Вместо слов 'Свое значение' указываешь свои данные 3. www.DOMAIN.com - заменяешь на свой сайт 4. Если у тя не уставновлен питон, то нужно установить 5. Запускаем скрипт: python file_nbame.py PS: 5-й пункт отлично работает под никсами(у меня не винда), а для запуска на твоей ОС - достаточно посмотреть документацию, но вообще проблем не должно быть. Если будут вопросы - пиши
lo0 Отписал в ПМ, но ответа не получил, поэтому спрошу здесь, если кто-нибудь может - ответьте, пж, на следущюие вопросы: данный скрипт будет работать, насколько я понимаю, с компа? Как регулировать кол-во запросов? Когда нажимаю кнопку "отправить" на сайте с формой (предварительно заполнив все необходимые поля), меня перекидывает на страницу (допустим, www.DOMAIN.com/good) с надписью "ваша заявка принята", после чего происходит редирект на первоначальную страницу с формой, ввиду этих данных, как нужно изменить строку result в коде?
Да, этот скрипт можно запускать с любой машине, лишь бы был доступ к www.DOMAIN.com Один раз запустил скрипт - один запрос выполнися, можно добавить в планировщик задач (cron for unix like) После запуска скипрта, переменная result будет содеражть ответ от сервера, т.е. если все ок, то result == '<html><body>ваша заявка принята</body></html>', или что-то в этом духе, но на ридерект никакой реакции не будет. Можешь в скипрт добавить еще одну строчку: print result и можно посмотреть на результат
Начнем с "бесконечно" или while True Если добавить данный блок, то скрипт у тя будет работать до тех пор, пока ручками не остановишь (kill pid) + очень быстро будет обрабатываться. Поэтому добавим еще таймер. Комментарий к блоку для "записи в файл" укажу в исходнике. Code: import urllib2, urllib, time from random import randrange urllib2.install_opener(urllib2.build_opener()) params = {'name':'Свое значение', 'title':'Свое значение', 'city':'Свое значение', 'phone':'Свое значение', 'email':'Свое значение', 'question':'Свое значение', 'answer':'Свое значение', 'source':'Свое значение'} while True: pause = randrange(1,10) # К перем. pause будет присвоено значение от 1 до 10 filehandle = open('result.txt', 'a') result = urllib2.urlopen('www.DOMAIN.com/cgi-bin/faq.cgi',urllib.urlencode(params)).read() filehandle.write(result) #Пишим результат в фалй result.txt time.sleep(pause * 60) # На сколько нужно сделать паузу (остановить вып. скрипта) в секундах filehandle.close () Все ответы/результаты будут записаны в файл result.txt в том каталоге, где и скрипт лежит. Таймер будет останавливать скрипт "от 1 до 10" мин, т.к. * 60, но здесь можно установить любое свое значение.