Versio

Mutaties vacatures websites bijhouden

Overzicht Reageren

Alex Been

Alex Been

11/09/2011 15:31:49
Quote Anchor link
Als personeelsbemiddelaar wil ik de vacaturespagina's van 300 bedrijven dagelijks controleren op mutaties (slechts enkele hanteren rss).
Heeft iemand een tool/script, waarmee ik dagelijks in 1 keer kan signaleren of veranderingen zijn op de vacaturetabs van de gewenste websites?

Vast ontzettend veel dank voor diegene die mij hieraan helpt.

n.b. Een tijd geleden heb ik een script op de kop getikt waarmee ik de mutatie voor een enkel adres kan bijhouden. Ik heb niet de kennis/kunde om dit om te zetten, zodat meerdere adressen gescanned kunnen worden. Wellicht is het script bruikbaar voor de geboden oplossing.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
date_default_timezone_set( 'Europe/Amsterdam' );

$url = 'http://www.google.nl';
$filename = dirname( __FILE__ ) . '/modified.txt';

$cURL = curl_init();

// geef de url op
curl_setopt( $cURL, CURLOPT_URL, $url );

// alleen de headers ophalen
curl_setopt( $cURL, CURLOPT_NOBODY, true );

// haal het moment van laatste aanpassing op
curl_setopt( $cURL, CURLOPT_FILETIME, true );

// geef het resultaat terug
curl_setopt( $cURL, CURLOPT_RETURNTRANSFER, true );

curl_exec( $cURL );
$headers = curl_getinfo( $cURL );
curl_close( $cURL );

/*
echo '<pre>' . print_r( $headers, true ) . '</pre>
      <hr />';
*/

if ( isset( $headers['filetime'] ) )
{

    $data = is_readable( $filename ) ? file_get_contents( $filename ) : '';
    if ( $data == $headers['filetime'] )
    {

        echo '<p>Er zijn geen wijzigingen geweest in http://www.google.nl</p>';
    }

    else
    {
        echo '<p>Er zijn wijzigingen geweest in http://www.google.nl</p>';
        if ( file_put_contents( $filename, $headers['filetime'] ) )
        {

            echo '<p>Het bestand is succesvol geüpdate</p>';
        }
    }

    echo '<p>Last-Modified: ' . date( 'r', $headers['filetime'] ) . '</p>';
}


?>
 
PHP hulp

PHP hulp

25/05/2012 06:22:24
Gesponsorde koppelingen:
 
Jacco Brandt

Jacco Brandt

11/09/2011 18:17:34
Quote Anchor link
Probeer dit eens?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
date_default_timezone_set( 'Europe/Amsterdam' );

$urls = array('http://www.google.nl', 'http://youtube.nl/');// hier in dit formaat meerdere toevoegen

foreach ($urls as $url) {

   $filename = dirname( __FILE__ ) . '/'.preg_replace('#[^a-zA-Z]{1,}#', '', $url).'_modified.txt';

   $cURL = curl_init();

   // geef de url op
   curl_setopt( $cURL, CURLOPT_URL, $url );

   // alleen de headers ophalen
   curl_setopt( $cURL, CURLOPT_NOBODY, true );

   // haal het moment van laatste aanpassing op
   curl_setopt( $cURL, CURLOPT_FILETIME, true );

   // geef het resultaat terug
   curl_setopt( $cURL, CURLOPT_RETURNTRANSFER, true );

   curl_exec( $cURL );
   $headers = curl_getinfo( $cURL );
   curl_close( $cURL );

   /*
   echo '<pre>' . print_r( $headers, true ) . '</pre>
         <hr />';
   */

   if ( isset( $headers['filetime'] ) )
   {

       $data = is_readable( $filename ) ? file_get_contents( $filename ) : '';
       if ( $data == $headers['filetime'] )
       {

           echo '<p>Er zijn geen wijzigingen geweest in '.$url.'</p>';
       }

       else
       {
           echo '<p>Er zijn wijzigingen geweest in '.$url.'</p>';
           if ( file_put_contents( $filename, $headers['filetime'] ) )
           {

               echo '<p>Het bestand is succesvol geüpdate</p>';
           }
       }

       echo '<p>Last-Modified: ' . date( 'r', $headers['filetime'] ) . '</p>';
   }
}

?>
Gewijzigd op 11/09/2011 18:18:01 door Jacco Brandt
 
Alex Been

Alex Been

11/09/2011 21:58:52
Quote Anchor link
Op het eerste oog doet dit wat ik zoek.
Bedankt voor de snelle reactie.


Toevoeging op 11/09/2011 21:58:53:

Op het eerste oog doet dit wat ik zoek.
Bedankt voor de snelle reactie.
 
Alex Been

Alex Been

22/09/2011 12:12:22
Quote Anchor link
Inmiddels gestuit op het volgende probleem:

In de tool staan nu zo'n 40 bedrijven en het script stopt na 30 seconden, waarbij de laatste bedrijven niet gescanned worden. DE volgende melding verschijnt:

Maximum execution time of 30 seconds exceeded

Iemand een suggestie hoe hier mee om te gaan. (het is geen optie voor mij om 20 losse php scripts handmatig te draaien. Ik wil het verwerkt hebben in 1 script)

Hoor graag reacie.

Groet,
Alex
 
Wout van der Burg

Wout van der Burg

22/09/2011 12:16:40
Quote Anchor link
De maximum execution time kun je aanpassen (verlengen) in je php.ini
 
Alex Been

Alex Been

22/09/2011 12:25:08
Quote Anchor link
bedankt voor de snelle reactie.

Ik been een php leek, dus ..... waar vind ik die php.ini?
 
Ger van Steenderen

Ger van Steenderen

22/09/2011 13:45:42
Quote Anchor link
In de map waar php geinstalleerd is.
 
Pim -

Pim -

22/09/2011 13:56:52
Quote Anchor link
Of doe phpinfo() in een script en dan staat ergens de lokatie van het .ini bestand.
 
Alex Been

Alex Been

22/09/2011 13:57:40
Quote Anchor link
In de map waar bovenstaand script staat, bevindt zich geen andere document. Ik heb enkel bovenstaand script.

Moet in deze map dan een php.ini bestand aanmaken om de execution time te kunnen verlengen?
Gewijzigd op 22/09/2011 13:59:26 door Alex Been
 
Victor -

Victor -

22/09/2011 14:10:51
Quote Anchor link
set_time_limit(0); // oneindig
set_time_limit(60); // 1 minuut
 
Alex Been

Alex Been

22/09/2011 14:27:40
Quote Anchor link
Mijn host geeft aan de php.ini tijd niet op te willen rekken.
Is er een manier om een php script los te koppelen van een server en het te draaien vanaf je harde schijf?

Ik ben bezig met een verdienmodel met een script. Participanten in kennis zijn welkom.
 
Ger van Steenderen

Ger van Steenderen

22/09/2011 14:56:56
Quote Anchor link
heb je externe toegang tot je database?
 
Victor -

Victor -

22/09/2011 15:08:32
Quote Anchor link
set_time_limit() kan je gewoon in het begin van je script zetten;)
 
Ger van Steenderen

Ger van Steenderen

22/09/2011 15:13:34
Quote Anchor link
Victor - op 22/09/2011 15:08:32:
set_time_limit() kan je gewoon in het begin van je script zetten;)

de host kan die functie uitgeschakeld hebben



Toevoeging op 22/09/2011 15:37:17:

Alex Been op 22/09/2011 14:27:40:
Mijn host geeft aan de php.ini tijd niet op te willen rekken.
Is er een manier om een php script los te koppelen van een server en het te draaien vanaf je harde schijf?

Ja dat kan, je kan php op je pc instaleren en dan scripts executen via CLI,
e.g. in windows omgevingen: (pad naar php)php.exe -q "volledig pad naar je script"
Op die manier kun je dus met tasksheduler op bepaalde tijdstippen een script uitvoeren.
Gewijzigd op 22/09/2011 15:40:59 door Ger van Steenderen
 



Overzicht Reageren

Get Adobe Flash player