веб-очистка — веб-очистка веб-сайта в php не работает

Я хочу получить данные таблицы валют из этого ссылка на сайт но я не могу получить данные в таблице … я пробовал разные способы, но все тщетно

библиотека, которую я использую: https://sourceforge.net/projects/simplehtmldom/

вот код php:

require "simple_html_dom.php";
$html = file_get_html("http://www.cibeg.com/English/Pages/CIBCurrencies.aspx");
$c = $html->find("#divCurrTableContainer",0)->innertext;
echo $c;

0

Решение

Вот код, который использует их сайт для получения информации из этой таблицы:

  $.ajax({
type: "POST",
url: '/_layouts/15/LINKDev.CIB.CurrenciesFunds/FundsCurrencies.aspx/GetCurrencies',
async: true,
data: "{'lang':'" + document.getElementById("ctl00_ctl48_g_5d7fc52f_a66d_4aa2_8d6c_c01fb4b38cb2_hdnLang").value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d != null && msg.d.length > 0) {
var contentHTML = "<table class='currTable' cellspacing='0' rules='all' style='border-width:0px;border-collapse:collapse;'>"+ "<tbody><tr class='currHeaderRow'>"+ "<th scope='col'>" + document.getElementById("ctl00_ctl48_g_5d7fc52f_a66d_4aa2_8d6c_c01fb4b38cb2_hdnCurrency").value + "</th><th scope='col'>" + document.getElementById("ctl00_ctl48_g_5d7fc52f_a66d_4aa2_8d6c_c01fb4b38cb2_hdnBuy").value + "</th><th scope='col'>" + document.getElementById("ctl00_ctl48_g_5d7fc52f_a66d_4aa2_8d6c_c01fb4b38cb2_hdnSell").value + "</th>"+ "</tr>";

for (var i = 0; i < msg.d.length; i++) {
if (msg.d[i].CurrencyID.length > 0) {
contentHTML += "<tr class='currRow'>"+ "<td>" + msg.d[i].CurrencyID + "</td><td>" + msg.d[i].BuyRate + "</td><td class='lastCell'>" + msg.d[i].SellRate + "</td>"+ "</tr>";
}
}
contentHTML += "</tbody></table>";
$("#divCurrTableContainer").html(contentHTML);
if ($(".bannerElements").length > 0)
FixCurrenciesRatesScroll();
}
},
error: function (msg) {
}
});

В php мы можем повторить этот запрос с помощью curl:

<?php
$ch = curl_init('http://www.cibeg.com/_layouts/15/LINKDev.CIB.CurrenciesFunds/FundsCurrencies.aspx/GetCurrencies');

$data = array("lang" => "en");

$data_string = json_encode($data);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))

);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);

curl_close ($ch);
var_dump($server_output);

?>

вставить это в http://phpfiddle.org/ и увидеть результат, который вы получите, который вам придется проанализировать с php

0

Другие решения

Как найти правильный селектор:

Chrome Dev Tools

в браузере Chrome:

  1. Нажмите F12
  2. Вкладка «Открытые элементы»
  3. Выберите тег HTML
  4. Щелкните правой кнопкой мыши и перейдите к копированию, а затем Селектор копирования.

Ваш код должен работать с этим селектором: #divCurrTableContainer > table

$c=$html->find('#selector_here');
foreach($c as $element)
echo $element->innerText();

и, как указал @nogad, используйте API для оперативных данных … утилизация данных такого типа не поможет, так как их изменение со временем.

Некоторые ссылки:

Вот некоторые API, которые могут помочь fixer.io и спросите своего друга из Google qry:API Live Currency

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector