[Python] вопрос/ответ.

Discussion in 'Python' started by De-visible, 21 Jan 2009.

  1. whexp

    whexp Member

    Joined:
    30 Nov 2009
    Messages:
    88
    Likes Received:
    29
    Reputations:
    5
    На тебе пример:
    Code:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import urllib
    import urllib2
    import re
    
    USERNAME = 'username'
    PASSWORD = 'password'
    
    url = 'login_url'
    data = urllib.urlencode({
        'vb_login_username': USERNAME,
        'vb_login_password': PASSWORD,
        'cookieuser': '1',
        's': '',
        'do': 'login',
        'forceredirect': '0',
        'vb_login_md5password': '',
    })
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5',
        'Referer': 'index_page_url',
    }
    
    req = urllib2.Request(url, data, headers)
    page = urllib2.urlopen(req).read()
    print page
    Только измени константы и адреса страниц для логина и реферер.
     
    #421 whexp, 10 Dec 2009
    Last edited: 10 Dec 2009
    1 person likes this.
  2. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Эхх, если кто из цветных заметит - нагадютЪ в карму :)
    Тулза конкретно для античата :
    http://dumpz.org/10228/
     
    2 people like this.
  3. whexp

    whexp Member

    Joined:
    30 Nov 2009
    Messages:
    88
    Likes Received:
    29
    Reputations:
    5
    login999, а в коде нет ни 1 упоминания ачата :D
     
  4. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    позор мне за то что немогу найти этого сам :(

    дайте плиз ссылки на статьи описывающие работу с POST и GET запросами на сайт.
    Ну типо на питоне произвести коннект на сайт и получить выданую страницу, перейти там по ссылке с POST параметрами и т.д.
     
  5. [Dezzter]

    [Dezzter] Elder - Старейшина

    Joined:
    26 Nov 2007
    Messages:
    182
    Likes Received:
    131
    Reputations:
    3
    PHP:
    import re
    import urllib2
    url 
    urllib2.urlopen('http://site.ru/test.php')
    url=url.read()
    match=re.findall('<!-- test -->[ \r\t].*?<!-- test2 -->'url)
    match=str(match)[2:-2]
    print  
    match
    Проблема вот в чём, если HTML страница вот такого вида:
    HTML:
    <!-- test --> Сдесь какой-то текст <!-- test2-->
    То всё парсится отлично, а вот если уже вот такого:
    HTML:
    <br><br><br>
    <center> Первая строка   </center>
    <center> Вторая строка </center>
    <!-- test -->
    <br>
    <center> Пляске </center>
    <br>
    <!-- test2 -->
    <center> Третья строка   </center>
    
    <center> Четвёртая строка </center>
    Тогда ни чего не парсится :(

    Я так понял, что re.findall парсит только строку.. а у меня во втором примере, нужно уже спарсить несколько строк :)

    Как решить эту проблему? Чёт питоновскую документацию полистал и не смог сам раздуплиться =/
     
  6. [Dezzter]

    [Dezzter] Elder - Старейшина

    Joined:
    26 Nov 2007
    Messages:
    182
    Likes Received:
    131
    Reputations:
    3
    Пример кода можно?

    Сам попробовал, не получилось.. всё таки что-то не так делаю :(
     
  7. *uNkN0Wn*

    *uNkN0Wn* Member

    Joined:
    25 Mar 2009
    Messages:
    175
    Likes Received:
    92
    Reputations:
    11
    login999 после 1-го сообщения больше не отправляет. И еще с кодировкой проблема.
     
    #427 *uNkN0Wn*, 13 Dec 2009
    Last edited: 13 Dec 2009
  8. [Dezzter]

    [Dezzter] Elder - Старейшина

    Joined:
    26 Nov 2007
    Messages:
    182
    Likes Received:
    131
    Reputations:
    3
    Всё там отправляет, жди дольше.. На ачате ограничение стоит, каждое следующее письмо можно отправлять ток по прошествии 60 секунд :)

    Да и с кодировкой всё в порядке, по крайней мере у меня ;)
     
  9. *uNkN0Wn*

    *uNkN0Wn* Member

    Joined:
    25 Mar 2009
    Messages:
    175
    Likes Received:
    92
    Reputations:
    11
    За отправку да не подумал. Но с кодировкой проблема не только у меня.
     
  10. whexp

    whexp Member

    Joined:
    30 Nov 2009
    Messages:
    88
    Likes Received:
    29
    Reputations:
    5
    rushter, никакая она не больная :) тыкни пальцем, где питон делает что-то не так, как надо.

    2 [Dezzter], http://docs.python.org/library/re.html#re.S
     
  11. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    re.DOTALL, re.MULTILINE
    Но будет проц грузить...
     
  12. *uNkN0Wn*

    *uNkN0Wn* Member

    Joined:
    25 Mar 2009
    Messages:
    175
    Likes Received:
    92
    Reputations:
    11
    Я только начал учить питон, так что если люди, которые смогут помогать, подсказывать? Если чего напишите аську.
     
  13. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Вообще-то , это чисто учебный пример, и писался он от нехер делать, и сначала писался для граббы...Просто так.И он работал... Единственное где там могут быть траблы с кодировками - это на кнопках.И мне на него, если честно так пофику было то...
    P.S. Поправил
     
  14. whexp

    whexp Member

    Joined:
    30 Nov 2009
    Messages:
    88
    Likes Received:
    29
    Reputations:
    5
    2rushter, ну просто win-консоль использует cp866, сайты вообще используют кто utf-8, кто cp1251, кто koi8-r. поэтому и приходится перекодировать.
     
  15. TRX.new

    TRX.new Member

    Joined:
    27 Apr 2009
    Messages:
    151
    Likes Received:
    21
    Reputations:
    0
    Code:
    from numpy import *
    from math import *
    b1 = b2 = b3 = b4 = 1
    ex = matrix('75,33,75;68,15,68;39,9,39;16,25,16;58,48,58;53,5,53;61,63,61;47,72,47;99,29,99;33,17,33;97,80,97;29,61,29;16,23,16;13,32,13;72,77,72;43,67,43;84,34,84;100,13,100;81,13,81;63,11,63')
    Y = [0.00077385, 0.00042372, 8.8133, 4.5851, 9,4883, 0.0011336, 0.0011336, 0.10767, 0.43098, 0.80050, 0.00061111, 0.0031792, 44.0359, 0.01448, 0.0075917, 0.00026723, 0.000036466, 0.000095717, 0.000047435, 24.336]
    m=20
    n=4
    eps=0.00001
    X = zeros([m,n])
    E = zeros([m,1])
    B = zeros([n,1])
    A = zeros([n,n])
    bb1=bb2=bb3=bb4=k=0
    while not ((abs((b1-bb1)/b1)<eps) and (abs((b2-bb2)/b2)<eps) and (abs((b3-bb3)/b3)<eps) and (abs((b4-bb4)/b4)<eps)):
        k=k+1
        print 'iteracya nomer', k
        print ''
        for element in range(0,m):
         n1 = sin(b4*ex[element,2])*((b1+b2*ex[element,0]**2+cos(b3*ex[element,1])))**(sin(b4*ex[element,2])-1)
         n2 = (sin(b4*ex[element,2])*((b1+b2*ex[element,0]**2+cos(b3*ex[element,1])))**(sin(b4*ex[element,2])-1))*ex[element,0]**2
         n3 = (sin(b4*ex[element,2])*((b1+b2*ex[element,0]**2+cos(b3*ex[element,1])))**(sin(b4*ex[element,2])-1))*(-sin(b3*ex[element,2])*ex[element,2])
         n4 = (sin(b4*ex[element,2])*((b1+b2*ex[element,0]**2+cos(b3*ex[element,1])))**(sin(b4*ex[element,2])))*log(b1+b2*ex[element,0]**2+cos(b3*ex[element,1]))*cos(ex[element,2]*b4)*ex[element,2]
         X[element,0] = n1
         X[element,1] = n2
         X[element,2] = n3
         X[element,3] = n4
         E[element,0] = Y[element]-(b1+b2*ex[element,0]**2+cos(b3*ex[element,1]))**sin(b4*ex[element,2])
    
        print 'matrix X:'
        print X
        A = dot(X.T,X)
        A = linalg.inv(A)
        Z = dot(X.T,E)
        B = dot(A,Z)
        print 'matrix B:'
        print B
        bb1=b1
        bb2=b2
        bb3=b3
        bb4=b4
        b1=b1+B[0]
        b2=b2+B[1]
        b3=b3+B[2]
        b4=b4+B[3]
        print b1,b2,b3,b4,k

    трабла: на 3ей итерации: ValueError: math domain error...

    wtf?!
     
  16. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    2 TRX.new
    лично я - хз...
     
    1 person likes this.
  17. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    Есть текст, одной строкой, вот кусок из него
    мне нужно из него получить значение hash'a 1260718814_aa0256f3b89294f28b
    Делаю так
    ничего ненаходит. Ну собсна я и неждал что это чтото найдет ибо это ваще какаято черная магия, пытался найти описание функции на русском, нихрена ненашол. Только посты на разных форумах, из чего примерно слепил свои параметры, но увы :(

    PS. вот такой черной магие решил задачу
     
    #437 cupper, 13 Dec 2009
    Last edited: 13 Dec 2009
  18. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Code:
    import re
    
    a = '''idden\" name=\"fid\" id=\"fid\" value=\"9410924\" \/>\n <input type=\"hidden\" name=\"hash\" id=\"hash\" value=\"1260718814_aa0256f3b89294f28b\" \/>\n <input type=\"hidden\" name=\"cats\" id=\"privacy_cats\" \/>\n <input type=\"hi'''
    hash_val = re.findall(r'''\"hash\"\ value\=\"(.*?)\"''', a)
    print hash_val
    
    P.S> Лентяй
     
    1 person likes this.
  19. TRX.new

    TRX.new Member

    Joined:
    27 Apr 2009
    Messages:
    151
    Likes Received:
    21
    Reputations:
    0
    Разобрался.. при вычислениях получается вырожденная матрица (Singular matrix) и поэтому в результирующую матрицу заносятся NaN ... судя по всему косяк в начальных данных..
     
    1 person likes this.
  20. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    спс, тока я там в посте дописал что смог получить сам hash :)
     
    1 person likes this.