1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Extract Data from Web Page

Discussion in 'PHP' started by kolucoms6, Sep 5, 2010.

  1. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #41
    I think the best way is to display the data in a text box like

    $address=explode("<br />",$contact[address]);
    $stringData .= "\"".$contact[name]."\",\"".trim($address[0])."\",\"".trim($address[1])."\",\"".trim($address[1])."\",\"".trim($contact[phone])."\"\n";
    Code (markup):
    at end of the file add

    <textarea rows=10 cols=50><?php echo $stringData; ?></textarea>
    Code (markup):
    This way you can copy contents from the box and paste it to notepad save as .csv

    Just a thought :)
     
    vrktech, Sep 7, 2010 IP
  2. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #42
    :) A smart way to Foll Csv file.
     
    kolucoms6, Sep 7, 2010 IP
  3. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #43
    
    
    
    <?php
    
    $name1= $_POST['name1'];
    $name2= $_POST['name2'];
    $name3= $_POST['name3'];
    $name4= $_POST['name4'];
    
    ?>
    
    <html>
    
    <link rel=stylesheet type="text/css" href="CSS/default0.css">
    
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    
    
    Last Name 1 : <input type=text name=name1 value=<?php echo $_POST['name1']; ?>><br>
    Last Name 2 : <input type=text name=name2 value=<?php echo $_POST['name2']; ?>><br>
    Last Name 3 : <input type=text name=name3 value=<?php echo $_POST['name3']; ?> ><br>
    Last Name 4 : <input type=text name=name4 value=<?php echo $_POST['name4']; ?>><br>
    
    <label for="city">City : </label><span class="field"><select id="city" name="city"><option value=""></option> 
    <optgroup label=England> 
    <option>Bath
    <option>Brighton and Hove
    <option>Canterbury
    <option>Chichester
    <option>Durham
    <option>Gloucester
    <option>Lancaster
    <option>Lichfield
    <option>London
    <option>Norwich
    <option>Peterborough
    <option>Preston
    <option>Salisbury
    <option>St Albans
    <option>Truro
    <option>Westminster
    <option>Worcester
    <option>Birmingham
    <option>Bristol
    <option>Carlisle
    <option>Coventry
    <option>Ely
    <option>Hereford
    <option>Leeds
    <option>Lincoln
    <option>Manchester
    <option>Nottingham
    <option>Plymouth
    <option>Ripon
    <option>Sheffield
    <option>Stoke-on-Trent
    <option>Wakefield
    <option>Winchester
    <option>York
    <option>Bradford
    <option>Cambridge
    <option>Chester
    <option>Derby
    <option>Exeter
    <option>Kingston upon Hull
    <option>Leicester
    <option>Liverpool
    <option>Newcastle upon Tyne
    <option>Oxford
    <option>Portsmouth
    <option>Salford
    <option>Southampton
    <option>Sunderland
    <option>Wells
    <option>Wolverhampton 
    </optgroup> 
    
    <optgroup label="Northern Ireland"> 
    <option>Armagh
    <option>Lisburn
    <option>Belfast
    <option>Newry
    <option>Londonderry
    </optgroup> 
    
    <optgroup label="Scotland"> 
    <option>Aberdeen
    <option>Glasgow
    <option>Dundee
    <option>Inverness
    <option>Edinburgh
    <option>Stirling
    </optgroup> 
    <optgroup label="Unitary Authorities of Wales"> 
    <option>Bangor
    <option>St Davids
    <option>Cardiff
    <option>Swansea
    <option>Newport
    </optgroup> 
    </select>
    
    <input type="submit" value="submit" name="submit">
    </form>
    </html>
    
    <?php
    
    if($_POST['submit']=="submit"){
    
    $location=$_POST['city'];
    include_once('simple_html_dom.php');
    
    $namedata[]=array($name1,$name2,$name3,$name4);
    
    foreach($namedata as $name){
    
    $page_exist=true;
    $i=0;
    
    while($page_exist){
    $i+=1;
    $myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name[$i-1].'&Location='.$location.'&pageSize=50&pageNumber='.$i;
    echo $myurl;
    if (function_exists('curl_init')) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $myurl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    $content = curl_exec($ch);
    curl_close($ch);
    }
    
    $html=str_get_html($content);
    if(!$html->find('div[class=searchResult]',0)==""){
    foreach($html->find('div[class=searchResult]') as $result){
    $resultdata[]=array(
    'name' => $result->find('h2',0)->innertext,
    'address' => $result->find('div[class=address]',0)->innertext,
    'phone' => $result->find('div[class=telephoneNumber]',0)->innertext
    );
    }
    }else $page_exist=false;
    }
    }
    //YOU CAN NOW DO WHATEVER YOU NEED WITH THE RESULT ARRAY
    
    //$mycsvFile = "testFile.csv";
    //$fh = fopen($mycsvFile, 'w') or die("can't open file");
    
    ?>
    
    <?
    echo "<table border=1 id=myTable><tr><th>Name</th><th>Address</th><th>City</th><th>Post Code</th><th>Phone</th></tr>";
    foreach($resultdata as $contact){
    
    $address=explode("<br />",$contact[address]);
    $stringData .= "\"".$contact[name]."\",\"".trim($address[0])."\",\"".trim($address[1])."\",\"".trim($address[1])."\",\"".trim($contact[phone])."\"\n";
    
    echo "<tr><td>".$contact[name]."</td><td>". str_replace('<br />', '</td><td>', $contact[address]) ."</td><td>".$contact[phone]."</td></tr>";
    }
    echo "</table>";
    
    }
    ?>
    
    <textarea rows=50 cols=250 locked=true><?php echo $stringData; ?></textarea>
    
    Code (markup):
    Found a small error :

    http://www.118.com/people-search.mv...cation=Wolverhampton&pageSize=50&pageNumber=1
    http://www.118.com/people-search.mv...cation=Wolverhampton&pageSize=50&pageNumber=2
    http://www.118.com/people-search.mv...cation=Wolverhampton&pageSize=50&pageNumber=3

    Whereas Smith should pass through 1,2,3,4 pages and then again PageNumber shld be reset to 1 for William.
     
    kolucoms6, Sep 7, 2010 IP
  4. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #44
    Sorry for that, Just delete the [$i-1] in $name[$i-1] at the line

    $myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name[$i-1].'&Location='.$location.'&pageSize=50&pageNumber='.$i;
    
    Code (markup):
     
    vrktech, Sep 7, 2010 IP
  5. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #45
    So, it wld be :

    $myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name.'&Location='.$location.'&pageSize=50&pageNumber='.$i;
     
    kolucoms6, Sep 7, 2010 IP
  6. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #46
    yes, you are right
     
    vrktech, Sep 7, 2010 IP
  7. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
  8. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #48
    Sorry for the confusion, It should be

    $myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name[0].'&Location='.$location.'&pageSize=50&pageNumber='.$i; 
    Code (markup):
     
    vrktech, Sep 7, 2010 IP
  9. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #49
    kolucoms6, Sep 7, 2010 IP
  10. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #50
    Yes, $name[0] will always be zero because it will get a new value every time it passes through the foreach loop
     
    vrktech, Sep 7, 2010 IP
  11. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #51
    
    
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=Bangor&pageSize=50&pageNumber=1
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=Bangor&pageSize=50&pageNumber=2
    
    
    Code (markup):
    I want name1, and then name2 and etc to use and Not always name1.
     
    kolucoms6, Sep 7, 2010 IP
  12. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #52
    It searches for the results with the keyword like this:

    Name1 - page 1, 2, 3, 4(if no results in page 4 - mean there are only 3 pages of results) <<then moves to next>>
    Name2 - page 1, 2,...
    Name3 - page 1, 2,...


    Let me know if it does not work that way

    Try adding echo $myurl."<br>"; to find how many url it queries
     
    Last edited: Sep 7, 2010
    vrktech, Sep 7, 2010 IP
  13. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #53
    It shld be :

    Name1 - page 1, 2, 3, 4(if no results in page 4 - mean there are only 3 pages of results) <<then moves to next>>
    Name2 - page 1, 2,...
    Name3 - page 1, 2,...
    Name4 - page 1, 2,...
     
    kolucoms6, Sep 7, 2010 IP
  14. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #54
    got it, I think the below code works good

    <?php
    
    ini_set('max_execution_time', 200);
    
    if($_POST['name1']) $name[]= $_POST['name1'];
    if($_POST['name2']) $name[]= $_POST['name2'];
    if($_POST['name3']) $name[]= $_POST['name3'];
    if($_POST['name4']) $name[]= $_POST['name4'];
    
    ?>
    
    <html>
    <head>
    
    <link rel=stylesheet type="text/css" href="CSS/default0.css">
    
    </head>
    
    
    <body>
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    
    
    
      Last Name 1 : <input type=text name=name1 value=<?php echo $_POST['name1']; ?>><br>
      Last Name 2 : <input type=text name=name2  value=<?php echo $_POST['name2']; ?>><br>
      Last Name 3 : <input type=text name=name3  value=<?php echo $_POST['name3']; ?> ><br>
      Last Name 4 : <input type=text name=name4  value=<?php echo $_POST['name4']; ?>><br>
    
    <label for="city">City : </label><span class="field"><select id="city" name="city"><option value=""></option> 
    <optgroup label=England> 
    <option>Bath
    <option>Brighton and Hove
    <option>Canterbury
    <option>Chichester
    <option>Durham
    <option>Gloucester
    <option>Lancaster
    <option>Lichfield
    <option>London
    <option>Norwich
    <option>Peterborough
    <option>Preston
    <option>Salisbury
    <option>St Albans
    <option>Truro
    <option>Westminster
    <option>Worcester
    <option>Birmingham
    <option>Bristol
    <option>Carlisle
    <option>Coventry
    <option>Ely
    <option>Hereford
    <option>Leeds
    <option>Lincoln
    <option>Manchester
    <option>Nottingham
    <option>Plymouth
    <option>Ripon
    <option>Sheffield
    <option>Stoke-on-Trent
    <option>Wakefield
    <option>Winchester
    <option>York
    <option>Bradford
    <option>Cambridge
    <option>Chester
    <option>Derby
    <option>Exeter
    <option>Kingston upon Hull
    <option>Leicester
    <option>Liverpool
    <option>Newcastle upon Tyne
    <option>Oxford
    <option>Portsmouth
    <option>Salford
    <option>Southampton
    <option>Sunderland
    <option>Wells
    <option>Wolverhampton 
    </optgroup> 
    
    <optgroup label="Northern Ireland"> 
    <option>Armagh
    <option>Lisburn
    <option>Belfast
    <option>Newry
    <option>Londonderry
    </optgroup> 
    
    <optgroup label="Scotland"> 
    <option>Aberdeen
    <option>Glasgow
    <option>Dundee
    <option>Inverness
    <option>Edinburgh
    <option>Stirling
    </optgroup> 
    <optgroup label="Unitary Authorities of Wales"> 
    <option>Bangor
    <option>St Davids
    <option>Cardiff
    <option>Swansea
    <option>Newport
    </optgroup> 
    </select>
    
    <input type="submit" value="submit" name="submit">
    </form>
    
    <?php
    
    if($_POST['submit']=="submit"){
    if(!$_POST['city']) die('No City selected');
    	$location=$_POST['city'];
    	include_once('simple_html_dom.php');
    	
    	
    	for($loop=0; $loop<count($name); $loop++){
    	
    		$page_exist=true;
    		$i=0;
    		
    		while($page_exist){
    			$i+=1;
    			$myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name[$loop].'&Location='.$location.'&pageSize=50&pageNumber='.$i;
    			echo $myurl."<br>";
    			
    			if (function_exists('curl_init')) {
    				$ch = curl_init();
    			   curl_setopt($ch, CURLOPT_URL, $myurl);
    			   curl_setopt($ch, CURLOPT_HEADER, 0);
    			   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    			   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    			   $content = curl_exec($ch);
    			   curl_close($ch);
    			}
    			
    			$html=str_get_html($content);
    			
    			if(!$html->find('div[class=searchResult]',0)==""){
    				foreach($html->find('div[class=searchResult]') as $result){
    					$resultdata[]=array(
    					'name' => $result->find('h2',0)->innertext,
    					'address' => $result->find('div[class=address]',0)->innertext,
    					'phone' => $result->find('div[class=telephoneNumber]',0)->innertext
    					);
    				}
    			}else $page_exist=false;
    		}
    	}
    	//YOU CAN NOW DO WHATEVER YOU NEED WITH THE RESULT ARRAY
    	//$mycsvFile = "testFile.csv";
    	//$fh = fopen($mycsvFile, 'w') or die("can't open file");
    	
    
    	echo "<table id=\"myTable\" border=1><tr><th>Name</th><th>Address</th><th>City</th><th>Post Code</th><th>Phone</th></tr>";
    	foreach($resultdata as $contact){
    		//$address=explode("<br />",$contact[address]);
    		//$stringData = "\"".$contact[name]."\",\"".trim($address[0])."\",\"".trim($address[1])."\",\"".trim($address[1])."\",\"".trim($contact[phone])."\"\n";
    		//fwrite($fh, $stringData);
    		echo "<tr><td>".$contact[name]."</td><td>". str_replace('<br />', '</td><td>', $contact[address]) ."</td><td>".$contact[phone]."</td></tr>";
    	}
    	echo "</table>";
    	//fclose($fh);
    
    }
    ?>
    </body></html>
    Code (markup):
    Gives results
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=London&pageSize=50&pageNumber=1
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=London&pageSize=50&pageNumber=2
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=London&pageSize=50&pageNumber=3
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=London&pageSize=50&pageNumber=4
    http://www.118.com/people-search.mvc?Supplied=true&Name=smith&Location=London&pageSize=50&pageNumber=5
    http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=London&pageSize=50&pageNumber=1
    http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=London&pageSize=50&pageNumber=2
    http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=London&pageSize=50&pageNumber=3
    http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=London&pageSize=50&pageNumber=4
    http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=London&pageSize=50&pageNumber=5
    http://www.118.com/people-search.mvc?Supplied=true&Name=david&Location=London&pageSize=50&pageNumber=1
    http://www.118.com/people-search.mvc?Supplied=true&Name=david&Location=London&pageSize=50&pageNumber=2
    http://www.118.com/people-search.mvc?Supplied=true&Name=david&Location=London&pageSize=50&pageNumber=3
    http://www.118.com/people-search.mvc?Supplied=true&Name=david&Location=London&pageSize=50&pageNumber=4
    http://www.118.com/people-search.mvc?Supplied=true&Name=david&Location=London&pageSize=50&pageNumber=5
    Code (markup):
    Check and do let me know
     
    vrktech, Sep 7, 2010 IP
  15. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #55
    Perfect Worked.
     
    kolucoms6, Sep 7, 2010 IP
  16. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #56
    
    
    <div class="nameDetailsInnerContainer InnerContainer"><h2 class='nameDetails   '>Smith A</h2></div></div><div class="clearfix"><div class="entry_content"><div class="full_listing"><div class="contact_highlight"><div id='entry_0_listing' class="listingBody"><div class="phoneNo"><table><tr><td><span class='phoneNoText  '> (03) 9663 5832 </span></td><td style="width:10px;"></td><td class="share_link" wpol:entryId="715585944V00W" wpol:contactPointId="715585944V00W"><div class="share_icon"></div><a class="screen_reader_only" rel="nofollow"
    href="/wp/mobile/send-to-mobile-accessible?entryId=715585944V00W&amp;listingId=715585944V00W&amp;searchType=R&amp;channel=WP"
    name="Smith">Send this listing to your mobile</a></td></tr></table></div><div class="addressContainer"><span class="streetLine">25 Spring St</span><br /><span class="locality">Melbourne</span><span class="state"> VIC</span><span class="postcode"> 3000</span>
    Code (markup):

    Smith A
    (03) 9663 58XX
    25 Spring St
    Melbourne VIC 3000

    What will be this part :

    $resultdata[]=array(
    'name' => $result->find('h2  class=nameDetails   ',0)->innertext,
    'address' => $result->find('div[class=addressContainer]',0)->innertext,
    'phone' => $result->find('div[class=phoneNoText  ]',0)->innertext
    );
    
    Code (markup):
     
    Last edited: Sep 10, 2010
    kolucoms6, Sep 10, 2010 IP
  17. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #57
    $resultdata[]=array(
    'name' => $result->find('h2[class=nameDetails]',0)->innertext,
    'streetLine' => $result->find('span[class=streetLine]',0)->innertext,
    'locality' => $result->find('span[class=locality]',0)->innertext,
    'state' => $result->find('span[class=state]',0)->innertext,
    'postcode' => $result->find('span[class=postcode]',0)->innertext,
    'phone' => $result->find('span[class=phoneNoText]',0)->innertext
    );
    Code (markup):
     
    vrktech, Sep 10, 2010 IP
  18. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #58
    Thanks,

    Can u explain me in Brief above code so that Next time If I have to do it, I shld be able to do it myself !!1
     
    kolucoms6, Sep 10, 2010 IP
  19. kolucoms6

    kolucoms6 Active Member

    Messages:
    1,198
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    75
    #59
    I get this link when I do echo :

    http://whitepages.com.au/wp/resSearch.do?subscriberName=smith&location=Sydney&page=1

    When I paste the link in Browser I do see there are 21 records.

    But when I run the Code, it doesn't Return me anything.

    
    
    
    <?php
    
    ini_set('max_execution_time', 200);
    
    if($_POST['name1']) $name[]= $_POST['name1'];
    if($_POST['name2']) $name[]= $_POST['name2'];
    if($_POST['name3']) $name[]= $_POST['name3'];
    if($_POST['name4']) $name[]= $_POST['name4'];
    if($_POST['name5']) $name[]= $_POST['name5'];
    ?>
    
    <html>
    <head>
    
    <link rel=stylesheet type="text/css" href="CSS/default0.css">
    
    </head>
    
    
    <body>
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    
    Last Name 1 : <input type=text name=name1 value=<?php echo $_POST['name1']; ?>><br>
    Last Name 2 : <input type=text name=name2 value=<?php echo $_POST['name2']; ?>><br>
    Last Name 3 : <input type=text name=name3 value=<?php echo $_POST['name3']; ?> ><br>
    Last Name 4 : <input type=text name=name4 value=<?php echo $_POST['name4']; ?>><br>
    Last Name 5 : <input type=text name=name5 value=<?php echo $_POST['name5']; ?>><br>
    
    <label for="city">City : </label><span class="field"><select id="city" name="city"><option value=""></option> 
    <optgroup label="New South Wales">
    <option>Sydney
    <option>Newcastle
    <option>Central Coast
    <option>Wollongong
    <option>Maitland
    <option>Wagga Wagga
    <option>Port Macquarie
    <option>Tamworth
    <option>Orange
    <option>Dubbo
    <option>Bathurst
    <option>Nowra-Bomaderry
    <option>Lismore
    <option>Coffs Harbour
    <option>Richmond-Windsor
    <option>Albury-Wodonga
    <option>Darwin
    <option>Palmerston 
    </optgroup> 
    
    <optgroup label=" Queensland"> 
    <option>Brisbane
    <option>Sunshine Coast
    <option>Townsville-Thuringowa
    <option>Cairns
    <option>Toowoomba
    <option>Mackay
    <option>Rockhampton
    <option>Bundaberg
    <option>Hervey Bay
    <option>Gladstone
    <option>Gold Coast-Tweed Heads
    </optgroup> 
    
    <optgroup label="South Australia"> 
    <option>Adelaide
    <option>Mount Gambier
    </optgroup> 
    
    <optgroup label="Tasmania"> 
    <option>Hobart
    <option>Launceston
    </optgroup> 
    
    <optgroup label="Victoria"> 
    <option>Melbourne
    <option>Geelong
    <option>Ballarat
    <option>Bendigo
    <option>Shepparton-Mooroopna
    <option>Melton
    <option>Mildura
    <option>Sunbury
    <option>Warrnambool
    </optgroup>
    
    <optgroup label="Western Australia"> 
    <option>Perth
    <option>Mandurah
    <option>Rockingham
    <option>Bunbury
    <option>Kalgoorlie-Boulder
    <option>Geraldton
    <option>Albany
    </optgroup>
    
    
    </select>
    
    <input type="submit" value="submit" name="submit">
    </form>
    
    <?php
    
    if($_POST['submit']=="submit"){
    if(!$_POST['city']) die('No City selected');
    $location=$_POST['city'];
    include_once('simple_html_dom.php');
    
    
    for($loop=0; $loop<count($name); $loop++){
    
    $page_exist=true;
    $i=0;
    
    while($page_exist){
    $i+=1;
    
    $myurl='http://whitepages.com.au/wp/resSearch.do?subscriberName='.$name[$loop].'&location='.$location.'&page='.$i;
    
    //$myurl='http://www.118.com/people-search.mvc?Supplied=true&Name='.$name[$loop].'&Location='.$location.'&pageSize=50&pageNumber='.$i;
    echo $myurl."<br>";
    
    if (function_exists('curl_init')) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $myurl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    $content = curl_exec($ch);
    curl_close($ch);
    }
    
    $html=str_get_html($content);
    
    if(!$html->find('div[class=searchResult]',0)==""){
    foreach($html->find('div[class=searchResult]') as $result){
    
    $resultdata[]=array(
    'name' => $result->find('h2[class=nameDetails]',0)->innertext,
    'streetLine' => $result->find('span[class=streetLine]',0)->innertext,
    'locality' => $result->find('span[class=locality]',0)->innertext,
    'state' => $result->find('span[class=state]',0)->innertext,
    'postcode' => $result->find('span[class=postcode]',0)->innertext,
    'phone' => $result->find('span[class=phoneNoText]',0)->innertext
    );
    
    }
    }else $page_exist=false;
    }
    }
    
    //YOU CAN NOW DO WHATEVER YOU NEED WITH THE RESULT ARRAY
    foreach($resultdata as $contact){
    echo $contact[name];
    $stringData .= $contact[name].",".$contact[streetline].",".$contact[locality].",".$contact[state].",".$contact[postcode].",".$contact[phone]."\n";
    }
    }
    ?>
    
    <textarea rows=50 cols=100 locked=true><?php echo $stringData; ?></textarea>
    
    </body></html>
    
    
    Code (markup):
    I presume I need to change

    
    if(!$html->find('div[class=searchResult]',0)==""){
    foreach($html->find('div[class=searchResult]') as $result){
    
    Code (markup):
    to

    
    $html=str_get_html($content);
    
    if(!$html->find('div[class=nameDetailsInnerContainer InnerContainer]',0)==""){
    foreach($html->find('div[class=nameDetailsInnerContainer InnerContainer]') as $result){
    
    
    Code (markup):

    I tried :

    foreach($resultdata as $contact){
    echo "inside";

    But It didnt print anything. Looks like $resultdata is NOT getting data.
     
    Last edited: Sep 11, 2010
    kolucoms6, Sep 11, 2010 IP
  20. vrktech

    vrktech Well-Known Member

    Messages:
    449
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #60
    change this
    if(!$html->find('div[class=searchResult]',0)==""){
    foreach($html->find('div[class=searchResult]') as $result){
    
    Code (markup):
    to
    
    $html=$html->find('div[id=entries]',0);
    if(!$html->find('div[class=entry]',0)==""){
    foreach($html->find('div[class=entry]') as $result){
    
    Code (markup):
     
    vrktech, Sep 11, 2010 IP