Favicon Svetmobilne.cz  Svět mobilně Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie
Zobrazené výsledky: 1 až 4 z 4

Téma: python - jak získat source webu (xxx.jsp) ?

  1. #1
    Nováček
    Registrace
    Feb 2010
    Příspěvků
    31

    Konkrétně stránku:
    http://sms.t-zones.cz/open.jsp
    popř. http://sms.t-zones.cz/ (kdy response.status=301 a dojde k přesměrování)
    [Python 2.5]
    >>> import httplib2
    >>> httplib2.debuglevel = 1
    >>> http = httplib2.Http('.cache')
    >>> url = "http://sms.t-zones.cz/open.jsp"
    >>> response, content = http.request(url,headers={'cache-control':'no-cache'})

    Obsah stránky (content) obsahuje místo text.řetězců symboly ve tvaru ???xxxxx???
    NAPŘ.
    zatímco ve zdrojovém kódu v prohlížeči je:

    <p class="gt-right">
    <strong>Odesílatel:</strong><br />
    <em>t-zones SMS</em>
    </p>

    >>> print content[12941:][:100]

    <p class="gt-right">
    <strong>???sender.title???</strong><br />
    <em>???sender???</em>
    </p>

    Možná že to souvisí s cookies,nevím...poraďte

    Ladící výpis:
    connect: (sms.t-zones.cz, 80)
    send: 'GET /open.jsp HTTP/1.1\r\nHost: sms.t-zones.cz\r\nuser-agent: Python-httplib2/$Rev$\r\naccept-encoding: deflate, gzip\r\ncache-control: no-cache\r\n\r\n'
    reply: 'HTTP/1.1 200 OK\r\n'
    header: Date: Fri, 09 Jul 2010 11:09:53 GMT
    header: Server: Apache/2.2.3 (Debian) mod_jk/1.2.18
    header: Set-Cookie: gPcookie=1;Max-Age=1000000000;Path=/;Version=1
    header: X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5
    header: Expires: Thu, 01 Jan 1970 00:00:00 GMT
    header: Pragma: no-cache
    header: Cache-Control: no-cache
    header: Content-Type: text/html;charset=utf-8
    header: Via: 1.1 sms.t-zones.cz
    header: Set-Cookie: JSESSIONID=5E3E2CFF95D685CB0E1213885C97A02B.inst07 ; Path=/
    header: Vary: User-Agent,Accept-Encoding
    header: Content-Encoding: gzip
    header: Connection: close
    header: Transfer-Encoding: chunked
    >>> response
    {'status': '200', 'content-length': '26761', 'via': '1.1 sms.t-zones.cz', 'content-location': 'http://sms.t-zones.cz/open.jsp', 'transfer-encoding': 'chunked', 'set-cookie': 'gPcookie=1;Max-Age=1000000000;Path=/;Version=1, JSESSIONID=5E3E2CFF95D685CB0E1213885C97A02B.inst07 ; Path=/', 'expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'vary': 'User-Agent,Accept-Encoding', 'server': 'Apache/2.2.3 (Debian) mod_jk/1.2.18', 'connection': 'close', '-content-encoding': 'gzip', 'pragma': 'no-cache', 'cache-control': 'no-cache', 'date': 'Fri, 09 Jul 2010 11:09:53 GMT', 'x-powered-by': 'Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5', 'content-type': 'text/html;charset=utf-8'}
    >>> content
    '<?xml version="1.0" encoding="utf-8" ?>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<title>???open.title???</title>\n****** **********="Content-Type" **********text/html; charset=utf-8" />\n****** **********="Content-Script-Type" **********text/javascript" />\n****** **********="Content-Style-Type" **********text/css" />\n<link rel="stylesheet" type="text/css" href="open/css/default-en.css" />\n ....atd
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SHW
    Registrace
    May 2006
    Příspěvků
    4,042

    Pokud je tomu tak opravdu, pak zřejmě na těch stránkách je použitej javaskript k nějakejm překladům. Zkus použít wget na získání textu tý stránky, co ti vrátí....
    Odpovídat lze po přihlášení



  3. #3
    Nováček
    Registrace
    Feb 2010
    Příspěvků
    31

    Schválně jsem javascript v browseru vypnul a na výsledek to nemá vliv (nefungují jen takové věci jako automatický doplňovač zadávaných slov nebo nejsou počítány znaky zapisované do textarea.
    Odesílací formulář funguje bez javascriptu, ale pro mě je to další záhada, že pokud korektně sestavím formulářová data a pak je zkusím POSTnout, nedaří se (narozdíl např. od brány http://www.vodafonesms.cz kde to funguje)

    Ukázka z wgetu (vypnuté všechny http volby) => totéž co v Pythonu:
    <div id="sub-col-left">
    <h3>???open.title???</h3>
    <ul id="gt-nav-tabs">
    <li class="active float-left"><strong>???open.title???</strong></li>
    </ul>
    <form method="post">
    <input type="hidden" name="counter" value="1278685586119" />
    <fieldset id="gt-frame" class="open">
    <legend>???open.title???</legend>
    <div id="gt-errormessage" style="display:none">
    <p class="close"><a href="#" title="???widget.close???"><img src="open/img/gatekeeper/Icon_Close.gif" width="14" height="13" alt="???widget.close???" /></a></p>
    <h5>???error???</h5>
    <ul class="info">
    </ul>
    <p class="buttons">
    <input type="submit" value="???continue???" class="submit-button plain" />
    </p>
    </div>
    <div class="gt-row" id="gt-recipients">
    <div class="gt-left">
    <p>
    <label for="recipient"><strong>???number???</strong></label><br />
    <input type="text" name="recipient" id="recipient" class="input-left" value="" tabindex="11" />
    </p>
    <ul class="error-list" id="recipient-errors">
    </ul>
    </div>

    Je fakt, že to nechápu...
    Povypínal jsem v browseru vše co se dá (JS,cookies,styly,info o předchozí stránce,javu,zásuv.moduly)
    Výsledek:
    Nelze odesílat form, ale text (bez stylů) je normální.
    -----<English verze>-----

    SMS gateway

    Error

    Phone number

    Sender:
    t-zones SMS

    Send message: normal screen only

    -----<Česká verze>------

    Poslat SMS

    Chyba

    Telefonní číslo

    Odesílatel:
    t-zones SMS

    Zprávu poslat jako: běžnou SMS SMS na display
    Naposledy upraveno uživatelem petrofff: 09-07-2010 v 18:32
    Odpovídat lze po přihlášení

  4. #4
    Nováček
    Registrace
    Feb 2010
    Příspěvků
    31

    <HOTOVO>
    Zjistil jsem,že stačí přidat jazyk:
    Headers = {
    'Accept-Language':'cs,en-us;q=0.7,en;q=0.3',
    'cache-control':'no-cache'
    }
    response, content = http.request(url,headers=Headers)

    content OK ( = source CS verze webu )

    PS.
    Ve skutečnosti HTTP request obsahuje navíc headers:
    'Accept-Encoding':'gzip,deflate'
    'User-Agent': 'Python-httplib2/$Rev$'
    které dodá Python při provedení metody http.request

    Když jsem chtěl (pro ověření) pomocí přesně stejných parametrů použít k downloadu program wget, očekávaný výsledek se nedostavil.
    Příkazový řádek:
    wget -U Python-httplib2/$Rev$ --header='Accept-Encoding:gzip,deflate' --header='Accept-Language:cs,en-us;q=0.7,en;q=0.3' -C off http://sms.t-zones.cz/open.jsp

    Poznámka: podle manuálu je správný tvar: --header='Accept-Encoding: gzip,deflate'
    Ale ten mi wget vyhodnotí jako cíl => http://gzip,deflate
    Naposledy upraveno uživatelem petrofff: 11-07-2010 v 18:15
    Odpovídat lze po přihlášení

Podobná témata

  1. Nové Counter Strike 1.6 a Source servery
    Od Star_gate v sekci Počítačové hry
    Reakcí: 3
    Poslední příspěvek: 06-03-2010, 15:37
  2. Nejde spustit IDLE(python gui)
    Od j1rka v sekci Programování
    Reakcí: 11
    Poslední příspěvek: 06-09-2008, 17:30
  3. Kde/jak získat ovladače/informace
    Od bigosh v sekci Operační paměti
    Reakcí: 6
    Poslední příspěvek: 28-04-2008, 21:33
  4. Jak získat televizní/digitální výstup na TV/monitor?
    Od Spectra Support v sekci Spectra - FAQ (z HW i SW oblasti)
    Reakcí: 0
    Poslední příspěvek: 26-10-2006, 03:46