Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 1565
Hei!
Ja, da har jeg funnet ut at jeg vil putte inn mitt brukernavn og passord på en ekstern nettside som heter username og password, for så å trykke på logg inn knappen, som heter login, for meg, HELT automatisk.

Ja, jeg vet at browsere støtter autologin og greier, men det er ikke dette som er formålet

Jeg kan kun programmeringsspråket PHP, og litt Python. Hadde vært fint om noen kunne gi meg en liten dytt i dette.

Det har ikke noe å si om denne autoinnloggingen foregår i terminal (Linux) eller i browseren. Det er uansett best om dette skjer i browseren, for da kan jo jeg fortsette å bruke denne nettsiden.

Det jeg har prøvd er:
Lagt inn aktuell nettside i iFrame.
Brukt JavaScript under iFramen med diverse koder jeg fant på google.

Funka ikke, fikk ingen feilmeldinger eller lignende, så her spør jeg egentlig om tips til et helt nytt skript
Tipper du kan bruke iMacros til dette, er bare en enkel addon til Chrome eller Firefox. Denne kan du automatisere så og si alt på web med. Den har også en opptaksfunksjon slik at du kan recorde at du skriver inn brukernavn og passord og trykker på logg inn, deretter kan du bare kjøre scriptet.

Chrome
Firefox
Jeg har gjort noe lignende før. La oss si den eksterne siden inneholder denne koden for å logge inn:

Kode

<form action="login.php" method="post">
<input type="text" name="user">
<input type="password" name="pw">
<input type="submit" value="Submit">
</form>
Det jeg gjorde var å lage en annen nettside som var lagret lokalt (på harddisken), med kode lignende dette:

Kode

<form id="autosend" action="http://eksternside.com/login.php" method="post">
<input type="hidden" name="user" value="mittbrukernavn">
<input type="hidden" name="pw" value="mittpassord">
</form>
<script>document.getElementById('autosend').submit();</script>
Nederste linje auto-submitter skjemaet når siden laster. Man trenger derfor kun å kjøre den lokale fila, før den deretter videresender til den eksterne nettsiden - innlogget!

Om den eksterne siden sjekker referer eller har en form for hiddenfield med for eksempel daglig skiftende autentiseringskode, fungerer metoden over heller dårlig. Skrev kodene ut av hodet, så kan ikke garantere at alt stemmer ved klipp og lim - men er vel tankegangen jeg er mest interessert i å dele.

Edit: glemte å lukke input-tagen. Bør være <input type"hidden" ....... />
Sist endret av zorro; 25. september 2013 kl. 21:20.
Sitat av kapsen Vis innlegg
Tipper du kan bruke iMacros til dette, er bare en enkel addon til Chrome eller Firefox. Denne kan du automatisere så og si alt på web med. Den har også en opptaksfunksjon slik at du kan recorde at du skriver inn brukernavn og passord og trykker på logg inn, deretter kan du bare kjøre scriptet.

Chrome
Firefox
Vis hele sitatet...
Ingen tilgang til å installere sånt på skolePC
Sitat av zorro Vis innlegg
Jeg har gjort noe lignende før. La oss si den eksterne siden inneholder denne koden for å logge inn:

Kode

<form action="login.php" method="post">
<input type="text" name="user">
<input type="password" name="pw">
<input type="submit" value="Submit">
</form>
Det jeg gjorde var å lage en annen nettside som var lagret lokalt (på harddisken), med kode lignende dette:

Kode

<form id="autosend" action="http://eksternside.com/login.php">
<input type="hidden" name="user" value="mittbrukernavn">
<input type="hidden" name="pw" value="mittpassord">
</form>
<script>document.getElementById('autosend').submit();</script>
Nederste linje auto-submitter skjemaet når siden laster. Man trenger derfor kun å kjøre den lokale fila, før den deretter videresender til den eksterne nettsiden - innlogget!

Om den eksterne siden sjekker referer eller har en form for hiddenfield med for eksempel daglig skiftende autentiseringskode, fungerer metoden over heller dårlig. Skrev kodene ut av hodet, så kan ikke garantere at alt stemmer ved klipp og lim - men er vel tankegangen jeg er mest interessert i å dele.
Vis hele sitatet...
Ja, noe sånt tenkte jeg for meg!
Koden fungerer flott
Et spørsmål til:
Vet du også hvordan jeg kan hente ut innholdet fra en DIV som ligger eksternt?
Koden til DIV-en på siden er:
<div id="aksjekurs">
1000
</div>
Det er altså 1000 jeg ønsker å hente ut automatisk, for så å prosessere videre (Sende meg en SMS )
Om du er på en skolepc, ville jeg brukt powershell til å logge inn på siden, for så å lagre hele html på disk. Deretter bruker du excel og litt vba så får du ut riktig data.
Powershell er innebygget i windows
▼ ... over en uke senere ... ▼
Ser du kan PHP, så da burde det ikke være så vanskelig å løse dette så lenge siden ikke bruker masse javascript ol. Se på curl. Her kan du laste ned hele siden etter innlogging for så å traversere DOMen og hente ut det du vil ha tak i
Jeg kan kun programmeringsspråket PHP, og litt Python. Hadde vært fint om noen kunne gi meg en liten dytt i dette.
Vis hele sitatet...
Kan ta litt om dette i Python.
Det er uansett best om dette skjer i browseren, for da kan jo jeg fortsette å bruke denne nettsiden.
Vis hele sitatet...
Litt poenget er og gjøre dette uten og bruke nettleseren.

Logg inn på nettsider her det viktig og analysere hvordan dette løses på den nettsiden før man skriver noe kode.
Kan neve noen av vektøyene som er vanlig og bruke med Python.
urllib eller Requests

Requests er bra,noe 5 millioner nedlastinger sier litt om.
Eks logger meg inn på bitbucket og får tilgang til wx_nrk prosjektet mitt.
"status_code" sier ifra om det gikk greit(200),"print r.text" viser kildekoden.

Kode

import requests

r = requests.get('https://bitbucket.org/snippsat/wx_nrk', auth=('username', 'password'))

print r.status_code
print r.text
Andre verktøy mechanize,eller kraftigere som gjøre full nettleser simulasjon Spynner Selenium

Vet du også hvordan jeg kan hente ut innholdet fra en DIV som ligger eksternt?
Koden til DIV-en på siden er:
Vis hele sitatet...
Det korrekte svaret er bruk parser,regex "kan" også brukes.
Et av det beste og morsomste svarene på stackoverflow(bobince) sier noe om hvorfor regex ikke er ideelt med html/xml.
Kan jo vise noen eksempler.

Beautiful Soup

Kode

from bs4 import BeautifulSoup

html ='''\
<div id="aksjekurs">
1000
</div>'''

soup = BeautifulSoup(html)
tag = soup.find('div', id="aksjekurs")
print tag.text.strip() # 1000
Hvorfor ikke ta 1000 rett ut av posten din med xpath(lxml)
For xpath i PHP se på SimpleXML.

Kode

import lxml.html

tag = lxml.html.parse('http://freak.no/forum/showthread.php?t=255617')
print tag.xpath('.//*[@id="post_message_2999600"]/text()[9]')[0].strip() # 1000
Regex:

Kode

import re

html ='''\
<div id="aksjekurs">
1000
</div>'''

r = re.search(r'(?s)id="aksjekurs">(.*)<', html)
print r.group(1).strip() # 1000
Sist endret av snippsat; 10. oktober 2013 kl. 18:33.