PDA

View Full Version : گرفتن اطلاعات از سایتی دیگر



sedamorde
یک شنبه 06 تیر 1389, 10:03 صبح
سلام، میدونم شاید سوالم تکراری باشه اما شرمنده چون جواب مناسب پیدا نکردم.

من میخوام از یک وب سایت دیگه اطلاعات مربوط به یک بازی فوتبال را به سایت خودم منتقل کنم. چطوری من باید این کار را انجام بدم!؟ اگر امکان داره مثال هم برام بزنید.

تشکر :)

m0h53n
یک شنبه 06 تیر 1389, 10:53 صبح
سلام

برای گرفتن اطلاعات از یک سایت باید از API های ارائه شده توسط آن سایت استفاده کنی.

مثل API های سایت Yahoo (http://developer.yahoo.com/everything.html)

sedamorde
یک شنبه 06 تیر 1389, 11:01 صبح
مرسی از شما. اون سایت هیج API ارائه نداده!
من نمیدونم با استفاده از SOAP میشه کاری کرد!؟؟

yasgig
یک شنبه 06 تیر 1389, 11:37 صبح
با curl می تونین این کارو انجام بدین.الان ما واسه سایت خبری علی دایی (http://alidaei.ir) این کارو کردیم.که اطلاعات بازی های فوتبال رو در سمت چپ صفحه نشون میده.

sedamorde
یک شنبه 06 تیر 1389, 11:46 صبح
مرسی دوست عزیز. (سایت خوبی بود)
میشه یک مثال کوچک هم برای من بزنی!؟ من میخوام از یک سایت لیست بازی ها را بگیرم در هر بازی تغیری بدم (مثل زمان) و در سایت خودم نشان بدم.
مرسی

yasgig
یک شنبه 06 تیر 1389, 12:00 عصر
<?php
$url = "http://www.footballiran.ir/NSite/League/LeagueTable.aspx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
ob_start();
$html=curl_exec($ch);
ob_end_clean();
curl_close ($ch);
if(preg_match( '/<table class="Tahoma10" cellspacing="0" cellpadding="4" align="Center" rules="all" bordercolor="White" border="1" id="LeagueTable_grdLeagueTable" width="100%">(.*?)<\/table>/si' , $html , $Match))
{
$new = str_replace('face="Tahoma"', 'face="Tahoma" size="2"', $Match[0]);
$content = $new;
}
echo ("<html dir=\"rtl\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head>$content</html>");
?>

sedamorde
یک شنبه 06 تیر 1389, 13:16 عصر
yasgig عزیز واقعا ممنون، این کد خیلی خیلی به من کمک کرد :)

فقط اگر لطف بکنی و چند راهنمایی هم به من بکنی خیلی ممنون میشم.
1- چطوری این کد را در یک حلقه قرار بدم؛ میخوام مثلا یک <div class="example> را پیدا کنم و تمام مقدارهایی که در این div قرار دادره به db خودم منتقل کنم.
2- چطوری مقداری از صفحه ای که گرفتم مثلا در مثلالی که شما زدید 'سپاهان' را در یک متغیر قرار بدم!؟

خیلی ممنون :)

AbiriAmir
یک شنبه 21 شهریور 1389, 15:54 عصر
<?php
$url = "http://www.footballiran.ir/NSite/League/LeagueTable.aspx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
ob_start();
$html=curl_exec($ch);
ob_end_clean();
curl_close ($ch);
if(preg_match( '/<table class="Tahoma10" cellspacing="0" cellpadding="4" align="Center" rules="all" bordercolor="White" border="1" id="LeagueTable_grdLeagueTable" width="100%">(.*?)<\/table>/si' , $html , $Match))
{
$new = str_replace('face="Tahoma"', 'face="Tahoma" size="2"', $Match[0]);
$content = $new;
}
echo ("<html dir=\"rtl\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head>$content</html>");
?>
دوست عزیز
میدونم تاریخ این پست یکم قدیمیه ولی شما این کار رو میتونستین با کد زیر هم بکنید
چرا اینقدر پیچوندینش؟

echo file_get_contents('http://www.footballiran.ir/NSite/League/LeagueTable.aspx');

yasgig
یک شنبه 21 شهریور 1389, 15:57 عصر
echo file_get_contents('http://www.footballiran.ir/NSite/League/LeagueTable.aspx');
واسه اینکه بعضا بعضی از سرورها اجازه نمیدن تا با این روش اطلاعات رو گرفت.منظورم سرور مقصد هست.همچنین این روش مزایایی دیگری نصبت به روش شما داره که با تحقیق کردن میتونین بهش پی ببرین.
موفق باشید!

funpatogh
چهارشنبه 24 شهریور 1389, 21:52 عصر
واسه اینکه بعضا بعضی از سرورها اجازه نمیدن تا با این روش اطلاعات رو گرفت.منظورم سرور مقصد هست.همچنین این روش مزایایی دیگری نصبت به روش شما داره که با تحقیق کردن میتونین بهش پی ببرین.
موفق باشید!
بنده هم موافقم