> Ну и смысл тогда?
Смысл в том, что код в начале топика тоже не будет работать без хуман эмулятора, который небесплатный :)
Никак, всё равно у вас нет этих библиотек :)
Тогда вы топиком ошиблись, мы тут хвастаемся как клёво можем yandex-майлы регать и обязательно код показываем :o)
Написал вам в личку.
> Подскажите пожалуйста, как сделать у себя на сайте Whois сервис?
Заплатить денег человеку, чтобы он сделал :)
Пожалуйста. Правда по FTP яндекс меня не пущает, я не знаю почему. Мне неинтересно выяснять т.к. эту байду я just for fun писал :)
# -*- coding: utf-8 -*- from grab import Grab import logging import re import time from ftplib import FTP from tools import account from tools.captcha.antigate import solve_captcha import settings def main(): acc = {} g = Grab() g.setup(log_dir='dumps', log_file='dumps/log.html') g.request(url='http://narod.yandex.ru/') g.follow_link(u'Создайте свой сайт') g.follow_link(u'Зарегистрироваться') g.set_input('iname', account.random_ru_fname()) g.set_input('fname', account.random_ru_lname()) acc['login'] = account.random_login() g.set_input('login', acc['login']) while True: g.submit() if g.search_rex('логин.*?уже.*?занят', re.S): acc['login'] = account.random_login() g.set_input('login', acc['login']) else: break password = account.random_password() acc['password'] = password g.set_input('passwd', password) g.set_input('passwd2', password) g.set_input('hintq', '1') g.set_input('hinta', account.random_ru_lname()) g2 = None while True: if g2 is None or g.search(u'неправильно ввели контрольные'): g2 = g.clone() g2.request(url=g.xpath('//img[@class="captcha-img"]')[0].get('src')) solution = solve_captcha(settings.ANTIGATE_KEY, g2.response_body) g.set_input('code', solution) g.submit('newform') if g.search(u'Поздравляем'): break time.sleep(5) g.request(url='http://narod.yandex.ru/disk/narod/') ftp = FTP('ftp.narod.ru') ftp.set_debuglevel(2) ftp.login(acc['login'], acc['password']) ftp.storbinary('STOR index.html', StringIO('Preved Medved!')) open('var/narod.txt', 'a').write('ftp.narod.ru;%s;%s\n' % (acc['login'], acc['password'])) logging.debug('Done') if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG, format='%(message)s') main()
Заплатите денег человеку, чтобы пофиксил. А что тут думать? :)
Лучше использовать ".*?" а не ".*", иначе возможны неприятные для вас эффекты
Напишу то же самое на python без использования всякой херни типа PHP :D
Опыт использования curl и socks-проксей есть.
<script type="text/javascript"> var frame_urls = {foo: 'http://yandex.ru'}; var keyword = 'foo'; document.write(' <frameset rows="*" frameborder="0" framespacing="0" border="0"><frame src="'+frame_urls[keyword]+'" marginheight="0" marginwidth="0" name="mainone" /><noframes><br>'); </script>
У меня этот код работает как в chrome, так и в firefox.