Jump to content
Sign in to follow this  
Taraldb

Script som finner dagens vare i nettbutikk

Recommended Posts

Hei, jeg skal for øvingens skyld prøve å lage et skript som hver dag åpner http://eutstyr.no/dagens.aspx og åpner kildekoden til den siden som blir åpnen og finner Dagens vare med å lete etter denne stringen:

<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">iPhone Sleeve Hvit</span>

og finner iPhone sleeve Hvit

<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">

står bare en gang i dokumentet

 

etterpå skal den enten finne bilde av varen og så sende informasjonen på mail, eller så sende den rett til mail. Det har jeg kontroll på og skal klare selv, men trenger sårt hjelp til "parsingen"

 

-Narils-

Share this post


Link to post

Ser siden er kodet i asp.net, så kanskje det er riktigere å plassere den i asp.net forumet...

 

jeg skal da bare parse gjennom koden med php for å så finne det som står midt mellom de <span> ene og så sende det til meg på mail...

Edited by NarilS

Share this post


Link to post

Er da absolutt ingen grunn til at man skal gjøre dette i Asp.

 

Mkay, det du starter med og gjøre er og bruke file_get_contents()

Deretter splitter du opp det du får 2 ganger.

 

noe ala dette:

 

<?php
$fp = file_get_contents("url");

$split = explode('<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">', $fp);
print_r($split); //Tror det skal bli split[1] som er riktig. Men outputter alt for sikkerhetsskyld.
$split2 = explode('</span>', $split[1]); //Forandre split 1 hvis det er en annen ting som er mer riktig.
print_r($split2); //Printer alt ut igjen for sikkerhetsskyld. Tweaking er koslig.

$tilbud = $split2[0]; //Tror nå at det blir array 0.
echo "Dagens Tilbud: <b>{$tilbud}</b>";
?>

 

Orka ikke teste dette, men sånn roughly så er det slik.

 

Share this post


Link to post

Er da absolutt ingen grunn til at man skal gjøre dette i Asp.

 

Mkay, det du starter med og gjøre er og bruke file_get_contents()

Deretter splitter du opp det du får 2 ganger.

 

noe ala dette:

 

<?php
$fp = file_get_contents("url");

$split = explode('<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">', $fp);
print_r($split); //Tror det skal bli split[1] som er riktig. Men outputter alt for sikkerhetsskyld.
$split2 = explode('</span>', $split[1]); //Forandre split 1 hvis det er en annen ting som er mer riktig.
print_r($split2); //Printer alt ut igjen for sikkerhetsskyld. Tweaking er koslig.

$tilbud = $split2[0]; //Tror nå at det blir array 0.
echo "Dagens Tilbud: <b>{$tilbud}</b>";
?>

 

Orka ikke teste dette, men sånn roughly så er det slik.

 

TAKK! men problemet er det at du blir fra dagens.apsx sendt videre til riktig url? hvordan løse denne nøtten?

Share this post


Link to post

Thss, det er en 300 Redirect (eller no i den duren) så det blir fiksa automatisk av PHP.

 

Prøv sjæl. Her er scriptet uten all debuginga :)

 

<?php
$fp = file_get_contents("http://eutstyr.no/dagens.aspx");

$split = explode('<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">', $fp);
#print_r($split); //Tror det skal bli split[1] som er riktig. Men outputter alt for sikkerhetsskyld.
$split2 = explode('</span>', $split[1]); //Forandre split 1 hvis det er en annen ting som er mer riktig.
#print_r($split2); //Printer alt ut igjen for sikkerhetsskyld. Tweaking er koslig.

$tilbud = $split2[0]; //Tror nå at det blir array 0.
echo "Dagens Tilbud: <b>{$tilbud}</b>";
?>

Share this post


Link to post

takk for det men har allerede fått det opp og inn i cron jobs på serveren og, men et spm hvordan kan jeg få mailscriptet til å sende html mail?

$to = "SENSUR ";
$subject = "Dagens tilbud fra utstyr ";
$message = 'Hei dagens tilbud fra eutstyr er: ' . $tilbud;
$from = "bot@bergee.net";
$headers = "From: " . $from;
mail($to,$subject,$message,$headers);

 

Skal sette opp slik at den henter produktbilde også splitte i stringen

<img id="ctl00_ContentPlaceHolder1_dvProdukt_imgs_imgStor" src="/upload/produkter/iPhone-r%c3%b8d-skinnsleeve-1.gif" style="border-width:1px;border-style:solid;height:379px;width:393px;" />

hvor linken i midten blir http://eutstyr.no/upload...skinnsleeve-1.gif

 

hvordan få til det? og hvordan hente inn den redirectede siden hvor du får sånn pen link hvor det står PRODUKTNAVN som en link (hyperlink)

 

EDIT: fikk ikke date i subject til å fungere heller :(

Edited by NarilS

Share this post


Link to post

Har nå tweaket scriptet og fått til bilde skal klare prisen selv også, men trenger hjelp til å finne ut hvilken link som dagens.aspx linker til...

 

<html>
<head>
	<meta charset="UTF-8">
	<title>Dagens tilbud på eutstur.no</title>
</head>

<?php
$fp = file_get_contents("http://eutstyr.no/dagens.aspx");

//Finner NAVN
$split = explode('<span id="ctl00_ContentPlaceHolder1_dvProdukt_lblTittel">', $fp);
$split2 = explode('</span>', $split[1]); //Forandre split 1 hvis det er en annen ting som er mer riktig.

//Finner BILDE
$ex = explode('<img id="ctl00_ContentPlaceHolder1_dvProdukt_imgs_imgStor" src="', $fp);
$ex2 = explode("/>", $ex[1]);

//Finner LINK
//$sefsef = explode('', $fp);
//$sefsef2 = explode('', $fp);

//Definerer outputs
$tilbud = $split2[0];
$bilde = '<img src="http://eutstyr.no/' . $ex2[0] . ' />';
//$link = $sefsef2[0];
$date = date("d/m-Y");

//OUTPUT! (hvis det skal kjøres i browser også...)
//husk link etterhvert!
echo "Dagens Tilbud: <b>$tilbud</b>";
echo "<br><br />";
echo $bilde;
echo '<br />';

?>



<?php
// Mottakere
$to  = 'YOUWANT?' . ', '; // Husk komma
$to  = 'YOU DONT GET';

// subject
$subject = 'Dagens tilbud på eutstyr.no : ' . $date;

// Melding
$message = '
<html>
<head>
 <title>Dagens tilbud på eutstyr.no : ' . $date . ' </title>
</head>
<body>
<h2>
	Dagens tilbud på eutstyr.no : ' . $date . '
</h2>
<p>
	er <strong>' . $tilbud . '</strong>
 		<br /><br />
 		' . $bilde . '
</p>
</body>
</html>
';

// Html "tags"
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

// Headere
$headers .= 'From: Bot PHP <bot@bergee.net>' . "\r\n";

// Send
mail($to, $subject, $message, $headers);
?>

 

EDIT: fant link med:

$sefsef = explode('Produkt.aspx?pid=', $fp);
$sefsef2 = explode('" id', $sefsef[1]);

 

Bare pris igjen nå som jeg skal klare ! :) takk for all hjelp! :D

 

EDIT2: fant pris også fikk dreisen på dette nå, igjen; takk for all hjelp!

Edited by NarilS

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...