Vinnaren i pepparkakshustävlingen!
2010-04-28, 14:23
  #1
Medlem
JohnRims avatar
Hej alla glada

Jag vill skapa ett program som automatiskt kollar https://bokabostad.stockholm.se/Lage...spx?sokid=6910 efter nya lägenheter. Så fort en ny lägenhet har lagts upp ska programmet anmäla intresse.

Helst ska den då skicka ett mail till mig med ett meddelande om detta, men det är inget måste.

Är helt lost, kan ytterst lite programmering, skulle behöva riktlinjer. Går detta att göra i enbart php? Finns det några simpla guider/klara script för en lekman som jag kan knåpa ihop, eller kommer det leda till enorm huvudvärk och jag bör outsourca detta projekt?.
Citera
2010-04-28, 15:08
  #2
Medlem
https://www.flashback.org/t1146088
Citera
2010-04-28, 15:31
  #3
Medlem
JohnRims avatar
Jag har pmat nes_boy men han svarar inte. Men är det så att det script han har skrivit där i tråden fungerar? Och i så fall hur får jag koden som står omsatt i ett program?
Citera
2010-04-30, 01:08
  #4
Medlem
xid0ns avatar
Kod:
<?php
    $url 
"https://bokabostad.stockholm.se/LagenhetSok.aspx?sokid=6910";
    
$user "";
    
$password "";
    
    
$page file_get_contents($url);
    
preg_match_all("/Diarienummer: (\d+),(.*?)href=\"(.*?)\"/s"$page$match);
    
    
$handle fopen("lagenheter.txt""a+");    
    
$content fread($handlefilesize("lagenheter.txt"));
    
    foreach(
$match[3] as $lagenhet)
    {
        if(!
strstr($content$lagenhet))
        {
            echo 
"Den här lägenheten är ny<br />";
            
fwrite($handle$lagenhet "\r\n");
            
            
/*
            Här kan du välja att spela upp musik, skicka email om du server tillåter eller dylikt
            */
        
}
    }
?>

Rekommenderar t.ex. Xampp om du vill köra det här på din egna dator, sedan behövs de fixas upp cronjobs om du vill inte köra de direkt i ett php fönster (kan göra så den kollar upp varje minut eller dylikt då).

Hade jag varit mindre lat och faktiskt inte orkat betala för att sätta mig i bostadskön så hade jag kunna automatisera ett skript som loggade in och anmälde intresset på lägenheten
__________________
Senast redigerad av xid0n 2010-04-30 kl. 01:11.
Citera
2010-04-30, 01:21
  #5
Medlem
Haha.

I början av -09 kodade jag ett sådant script och fick då lägenheten jag just nu bor i, och för närvarande sitter i.

Kul att fler har tänkt på samma sak.
Citera
2013-08-18, 02:40
  #6
Medlem
JohnRims avatar
Haha, gick igenom min mailhistorik och detta dök upp.

Här är ett inkomplett scriptet en polare skrev vid tiden. Vad jag förstår är det bara ett formulär kvar på slutet att skriva, fråga inte mig då jag har 0-programmeringskunskap. De kan ha ändrat på hemsidan så kanske är det värdelöst, men men
Kod:
#!/bin/bash

#read -ep  "Username: " username;
username="DITT PERSONNUMMER, 12- siffrigt"
read -esp "Password: " password;

cookies="cookies.txt"
database="database.txt"
tmpfile1="tmpfile1.txt"
tmpfile2="tmpfile2.txt"

data="__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=/wEPDwULLTE1MzUzOTYyMDUPZBYCZg9kFgJmD2QWBAIBD2QWBgIBDxYCHgRocmVmBTRodHRwOi8vYm9rYWJvc3RhZC5zdG9ja2hvb  G0uc2U6ODAvSW1hZ2VzL2Zhdmljb24uaWNvZAIDDxYCHgdjb250ZW50BS1Cb3N0YWRzZsO2cm1lZGxpbmdlbiwgYm9zdGFkc2vDt  iwgbMOkZ2VuaGV0ZXJkAgQPFgIfAQUSQm9zdGFkc2bDtnJtZWRsaW5nZAIDDxYCHgZhY3Rpb24FLmh0dHBzOi8vbG9naW4zLnN0b  2NraG9sbS5zZS9Cb3N0YWQvbnlsb2dpbi5mY2MWCAIBD2QWAgIBD2QWAgIBDxYCHgdWaXNpYmxlaBYCZg8PFgQeBFRleHQFCExvZ  2dhIGluHgtOYXZpZ2F0ZVVybAUsaHR0cHM6Ly9ib2thYm9zdGFkLnN0b2NraG9sbS5zZS9Mb2dnYUluLmFzcHhkZAIDD2QWAgIBD  2QWAgICDxYCHgtfIUl0ZW1Db3VudAIFFgYCAQ9kFgICAQ9kFgJmDw8WBB8FBRUvTWluU2lkYS9NaW5TaWRhLmFzcHgfBAUKTWluY  SBzaWRvcmRkAgIPZBYCAgEPZBYCZg8PFgQfBQURL0xhZ2VuaGV0U29rLmFzcHgfBAUQU8O2ayBsw6RnZW5oZXRlcmRkAgMPZBYCA  gEPZBYCZg8PFgQfBQUNL1N0dWRlbnQuYXNweB8EBQdTdHVkZW50ZGQCCA8WAh4JaW5uZXJodG1sBRM8YSBocmVmPSIvIj5IZW08L  2E+ZAIJD2QWBAIBD2QWBAIBD2QWAgIBDxYCHwcFF0xvZ2dhIGluIHDDpSBNaW5hIHNpZG9yZAIDD2QWBAIBDw8WAh8EBRdMb2dnY  SBpbiBww6UgTWluYSBzaWRvcmRkAgMPZBYEAgIPZBYOAgUPFgIfA2cWBAIBDxYCHwcFDVBlcnNvbm51bW1lcjpkAgUPFgIfBAUeJ  m5ic3A7Jm5ic3A7KMOFw4XDhcOFTU1ERE5OTk4pZAIHD2QWAgIBDxYCHwcFB0UtcG9zdDpkAgkPFgIfBwUOTCYjMjQ2O3Nlbm9yZ  DpkAg0PFgIfBwUITG9nZ2EgaW5kAg8PDxYCHwQFGFNha25hci9HbMO2bXQgbMO2c2Vub3JkP2RkAhEPDxYCHwQFG0FubcOkbCBka  WcgdGlsbCBib3N0YWRza8O2bmRkAhMPDxYEHwQFEEZvcmVpZ24gc3R1ZGVudHMfBQUbfi9Mb2dnYUluLmFzcHg/YW52dHlwPWVwb3N0ZGQCAw9kFgICAQ8WAh8HBRtMb2dnYSBpbiBwJiMyMjk7IE1pbmEgc2lkb3JkAgMPZBYEAgMPDxYCHwQFIkph  ZyB2aWxsIHN0w6RsbGEgbWlnIGkgYm9zdGFkc2vDtm5kZAIFDw8WAh8EBURKYWcgc3TDpXIgaSBib3N0YWRza8O2biBvY2ggdmls  bCBiZXN0w6RsbGEgbMO2c2Vub3JkIHRpbGwgTWluYSBTaWRvcmRkZJtFDgpPIIBnmbY86ZKYNLA+3UNL&__EVENTVALIDATION=/wEWBQL76ODKDwLl9cDzCQL0j5rNBgLen8YxArqfyIkCmsbvZZsyj5mM9ttg0x3dIr705To=&ctl00$ctl00$scriptManager=&target=-SM-https://bokabostad.stockholm.se/MinSida/IDPRedirect.aspx&smauthreason=0&smagentname=-SM-gy1oUBYauHEnnrMWYOpg5J09LnDJkrI74ztQBJJyLBX%2bWEU%2biQmTddbkqgsAQbrm&USER=$username&PASSWORD=$password"

echo ""
echo ""
echo "=> The computer is busy! <="
echo ""

curl -s -L -F $data                                                   \
	--cookie-jar $cookies                                              \
	'https://login3.stockholm.se/Bostad/nylogin.fcc'                    \
	> /dev/null

curl -s -L                                                            \
	--cookie $cookies                                                  \
	'https://bokabostad.stockholm.se/LagenhetSok.aspx?sokid=6910'       \
	> /dev/null

curl -s https://bokabostad.stockholm.se/LagenhetSok.aspx?sokid=6910    \
	| grep -i 'Diarienummer='                                           \
	| iconv -c -f iso-8859-1 -t utf-8                                    \
	| sed 's/">.*$//'                                                     \
	| sed 's/" href="Lagenhet\.aspx?Diarienummer=/\n/' > $tmpfile1


data=""
baseurl="https://bokabostad.stockholm.se/Lagenhet.aspx?Diarienummer="
i=1
while [ $i -lt 100 ]
do
	url=$(head $tmpfile1 -n $[$i*2] | tail -n 1)
	
	res=$(grep -e $url $database)
	if [ "$res" == "" ]; then
		fullurl="$baseurl$url"
		echo $fullurl
		
		curl -s $fullurl > $tmpfile2
		viewstate=$(grep '__VIEWSTATE' $tmpfile2 | sed 's/<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="//' | sed 's/" \/>//')
		eventvalidation=$(grep 'EVENTVALIDATION' $tmpfile2 | sed 's/<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="//' | sed 's/" \/>//')
		
		data="__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=$viewstate&__EVENTVALIDATION=$eventvalidation&ctl00$ctl00$scriptManager=&ctl00_ctl00_MainContent_Innehall_uiWebControlLagenhetDetalj_uiLagenhetBild_uiTelerikRotator_ClientSt  ate=&ctl00$ctl00$MainContent$Innehall$uiWebControlLagenhetDetalj$uiCheckBoxKrav=on&ctl00$ctl00$MainContent$Innehall$uiWebControlLagenhetDetalj$uiButtonMarkeraIntresse=Anmäl%20intresse  &ctl00$ctl00$MainContent$MerInnehall$uiWebcontrolStatus$uiAjaxAccordion_AccordionExtender_ClientState  =0"
		
		curl -L -F $data            \
			--cookie $cookies        \
			-e $fullurl               \
			$fullurl
		
		echo -n ",$url" >> $database
	fi
	
	i=$[$i+1]
done

rm $database
rm $cookies
rm $tmpfile1
rm $tmpfile2
Här finns nedladdning också, ifall paste från notepad++ skulle fuckat upp på något vis (script skrivet i linux-miljö).

https://anonfiles.com/file/ccc03bc45...6aea5d4474cd63
__________________
Senast redigerad av JohnRim 2013-08-18 kl. 02:53. Anledning: klargöring av personnummer
Citera
2014-03-06, 10:57
  #7
Medlem
von_Tratts avatar
Jag måste bumpa denna tråd eftersom både denna och den andra trådens script inte förefaller kompletta eller aktuella.

Finns något script som funkar till detta? Då inte bara ett script som mailar en när det kommer ut nya lgh utan ett som faktiskt ansöker om dem omedelbart.

Jag är helt lost när det kommer till programmering men rätt bra på datorer i övrigt så en översiktlig ungefärlig steg för steg-guide hur man går tillväga för att sätta ett sådant script i arbete vore också klockrent.
Citera
2016-01-04, 15:15
  #8
Medlem
Voglys avatar
bump
Citera
2016-06-22, 12:40
  #9
Medlem
Illuminerings avatar
Någon som har en ny script?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback