Могу смело заявить что параметр sid в куках можно обходить,если знать как.Это просто к сведению.Скрипт работает уже больше полугода,и пока что все работает.Генерирую кукисы сам,ну а затем по мелочи.имха.
господа хакеры, объясните начинающему как такое может быть addEx = re.compile(r'(\w+aeb)') for m in re.finditer(addEx, response): num = m.start() print response[num-20:num+20] Выдает: \" id=\"h\" value=\"b41aeb7a\">\n < где b41aeb7a искомый номер Теперь я знаю что искать. Беру поиск чтобы получить это число: addEx = re.compile('(?<=value=\\\")\w+') hits = addEx.findall(response) print hits Но в результате ничего не получаю!!! Это как?
А я так логинюсь: PHP: #!/usr/bin/env python # -*- coding: cp1251 -*- import urllib import urllib2 urllib2.install_opener(urllib2.build_opener(urllib2.HTTPCookieProcessor)) params = urllib.urlencode({'email' : "login@login",'pass': "pass"}) request = urllib2.Request('http://vkontakte.ru/login.php', params) f = urllib2.urlopen(request) cookie = f.headers print cookie
PHP: S = '\" id=\"h\" value=\"b41aeb7a\">\n <' S = S.replace('\" id=\"h\" value=\"', '') S = S.replace('\">\n <', '') я так делал, работало в итоге у тебя в S остаётся только начение value
не понял. Можешь объяснить? Есть в форме поле value. Найти его значение не могу. Значение id из той же формы находится. Для поиска значения юзаю: addEx = re.compile('(?<=value=)\w+') hits = addEx.findall(response) print hits ЗЫ: ща попробую
response = str(urllib2.urlopen(req).read()) s = responce.replace('\" id=\"h\" value=\"', '') s = s.replace('\">\n <', '') print s вот так вообще не работает
Если ты точно мужду чем находится искомое значение то тупо отбрось лишнее через replace(). Я делал замену текста на пустое значение, то есть - просто удалял лишнее.
а! Так в том-то и беда! Я когда беру вот это значение из формы и вбиваю руками, оно его находит. А когда я беру имя поля, в котором должно быть это значение, то поле оказывается пустым.
Такой вопрос ,может кто то сталкивался:Допустим шлю пост запрос через прокси получаю в ответ заголовок с куками.Так вот если я буду для ускорения процесса слать уже гет с нужными куками без прокси капчу будет выкидывать или нет?
_nic, Что в конечном итоге надобно получить? Если кука есть - то и логиниться не нужно. А следовательно, и GET делать не нужно. Такая вот логика, если вопрос рассматривать так, как он описан.
Я все ясно написал.Шлю пост с мылом\паролем через прокси ,если верно получаю ответ с редиректом и куками.Потом шлю гет что бы получить инфу о анкете.Так вот если гет будет идти не через прокси,то будет капчу кидать после допустим 1000го раза, или нет?
Вернемся к баранам. Все хорошо кроме одного. Не могу выципить из формы приглашения имя и фамилию, если они кириллицей написаны. Латиницей ок, а кириллицей йок. Попробовал сделать вот так: ru = lambda x: unicode(x,'cp1251') test = ru(response[500:700]) addEx = re.compile('(?<!<\/a>)\w+') hits = addEx.findall(test) print hits Все равно не видит русского имени
господа, нужна ваша помощь. Есть ссылочка на добавление в друзья. Когда ее выполняю просто в браузере, то все норм, когда отсылаю скриптом, то ошибка безопастности. Смотрел через файерфокс хттп_заголовки, но там ничего более не передается. Сегодня днем еще через скрипт все срабатывало. Кто может подсказать, что не верно я контакту скармливаю: url = 'http://vkontakte.ru/friend.php?act=addFriend&fid=795186&h=1367d519&first_name=%D0%AE%D0%BB%D0%B8%D1%8F&last_name=%D0%A0%D0%B0%D0%B5%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&sex=%D0%B0&message=' req = urllib2.Request(url) req.add_header("Referer", "http://vkontakte.ru/search.php?q=%E4%EC%E8%F2%F0%E8%E9+FX&act=quick") req.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5") response = str(urllib2.urlopen(req).read())
вот. Родил. Мой первый скрипт в веб-программинге. Работает #!/usr/bin/python import cgi import urllib import urllib2 import re import cookielib import time def loginContact(nickname, password): cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) urllib2.install_opener(opener) headers = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)'} data = {"email":nickname, "pass"assword} sendData = urllib.urlencode(data) req = urllib2.Request("http://vkontakte.ru/login.php", sendData, headers) try: vk = str(urllib2.urlopen(req).info()) except: cookie = status = "ERROR" return cookie, status else: if "remixsid=deleted" in str(vk): status = "NO" return cookie, status else: status = "YES" return cookie, status def openSearch(): searchURL = "http://vkontakte.ru/search.php?q=%EA%E8%E5%E2&act=quick" req = urllib2.Request(searchURL) response = str(urllib2.urlopen(req).read()) addEx = re.compile('(?<=addToFriend\()\w+') ids = addEx.findall(response) return ids def addFriend(ids): urlArray = [] for id in ids: friendURL = "http://vkontakte.ru/friend.php?act=a_add_form&fid=" + id urlArray.append(friendURL) for urlNum in range(1, len(urlArray)): searchURL = urlArray[urlNum] req = urllib2.Request(searchURL) response = str(urllib2.urlopen(req).read()) addEx = re.compile('(?<=\")\w+') hits = addEx.findall(response[850:950]) for i in range(0, len(hits)): if hits == 'h' and hits[i + 1] == 'h': value = hits[i + 2] break addEx = re.compile('(?<!<\/a>)\w+', re.UNICODE) hits = addEx.findall(response[500:700]) for i in range(0, len(hits)): if hits == ids[urlNum]: firstName = hits[i + 1] lastName = hits[i + 2] break url = 'http://vkontakte.ru/friend.php?act=addFriend&fid=' + ids[urlNum] + '&h=' + value + '&first_name=' + firstName + '&last_name=' + lastName + '&sex=&message=' req = urllib2.Request(url) urllib2.urlopen(req).read() time.sleep(2.5) return responce def main(): print "Content-type: text/html\n" inputValue = cgi.FieldStorage() name = inputValue["name"].value passw = inputValue["pass"].value go = loginContact(name, passw) if go[1] == 'YES': addFriend(openSearch()) main()