Взимане на информация от сайт

C++ JAVA
Post Reply
bsd
Нов
Нов
Posts: 78
Joined: Fri Jun 27, 2008 8:50 am

Взимане на информация от сайт

Post by bsd » Tue Oct 25, 2011 4:53 pm

[php]<?php
$url="http://btv.bg/weather/";
$string = file_get_contents($url);
$edno=explode('<div align="left">',$string);
$dve=explode('</div></td>',$edno[1]);
echo $dve[0];
?> [/php]

Видях кода по-горе в един от уроците тук, но проблема ми е, че това като гледам взима само текста, но не и object елемента. Някакви предложения или алтернативи?

Благодаря предварително!!!

User avatar
embaka
Гуру
Гуру
Posts: 2045
Joined: Sun May 04, 2008 8:43 pm
Answers: 105
Location: В. Търново
Contact:

Post by embaka » Tue Oct 25, 2011 9:45 pm

ето ти го тук има демо където съм го качил и си работи

[php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Времето в България и Европа</title>
</head>
<body>

<div style="display:block; width:950px; margin:0 auto;">
<div style="float:left;">
<h1>Времето в България</h1>
<object width="460" height="305" type="application/x-shockwave-flash" data="http://www.btv.bg/flash/weather-bulgaria.swf" style="visibility: visible;">
<param name="menu" value="false">
<param name="wmode" value="transparent">
<param name="bgcolor" value="#FF0000">
<param name="flashvars" value="xmlfile=http://www.btv.bg/weather_service.php">
</object>
</div>

<div style="float:right;">
<h1>Времето в Европа</h1>
<object width="460" height="305" type="application/x-shockwave-flash" data="http://www.btv.bg/flash/weather-europe.swf" style="visibility: visible;">
<param name="menu" value="false">
<param name="wmode" value="transparent">
<param name="bgcolor" value="#FF0000">
<param name="flashvars" value="xmlfile=http://www.btv.bg/weather_service.php">
</object>
</div>
<div style="clear:both;"></div>



<?php

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');

function GetBetweenElement($content, $start, $end, $element=0){
if(empty($element) || is_null($element))
{
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
else
{
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[$element]);
return $r[0];
}
return '';
}
}
$url = file_get_contents("http://btv.bg/weather/");

$str = GetBetweenElement($url, '<div class="placeholder" id="divpl2">', '</div>');
echo '<div>'.strip_tags($str,'<p><br><br />').'</div>';

?>
</div>
</body>

</html>
[/php]

bsd
Нов
Нов
Posts: 78
Joined: Fri Jun 27, 2008 8:50 am

Post by bsd » Wed Oct 26, 2011 5:03 pm

Не ми трябва времето, просто за това е демото в урока. Искам да взема определена информация от друг сайт.

User avatar
embaka
Гуру
Гуру
Posts: 2045
Joined: Sun May 04, 2008 8:43 pm
Answers: 105
Location: В. Търново
Contact:

Post by embaka » Wed Oct 26, 2011 6:25 pm

От това, което си посичил не ми става много ясно от кой сайт какво искаш да вземеш, това което си дал е за бтв времето, така че друг път разясни какво искаш точно да направиш и от къде ...., ние да не сме гадатели, какво ти се върти в главата. Изгубих си 1 час от времето да се занимавам с това и накрая...

bsd
Нов
Нов
Posts: 78
Joined: Fri Jun 27, 2008 8:50 am

Post by bsd » Wed Oct 26, 2011 7:10 pm

ами не е едно, искам код, който взима съдържанието на определен div, както написах в темата

иначе благодаря,че се опита да помогнеш

sirdude
Нов
Нов
Posts: 7
Joined: Fri Mar 11, 2011 3:03 pm

Post by sirdude » Wed Oct 26, 2011 7:41 pm

Намери елемент от хтмл на страницата, която искаш да 'прочетеш' който е с уникално id и е малко вероятно да изчезне.

Като започне да 'чете' големия стринг го счупи в нов такъв, при този уникален елемент или последователност от символи.

Новия по-малък стринг, който ти съдържа полезната информация, вече ще има намален състав от елементи. Счупи при подходящия и след това счупи при следващия подходящ. Между тях е вероятно желаната от теб информация.

Ти разполагаш с всичките необходими команди, като ти го видях се сетих преди 6 месеца как се пробвах аз да го правя същото. Това бе решението до което достигнах. Изобщо не е елегантно, но каквото такова. :)

Post Reply