Использование PHP cURL для получения текста с веб-сайта и сохранения в MySQL - PullRequest
0 голосов
/ 27 марта 2020

Я какое-то время искал эту работу, но мне кажется, что я не могу сделать это сам. Я использую cURL, чтобы получить некоторую информацию с веб-сайта и сохранить эту информацию в базе данных MySQL. Сейчас у меня есть следующий код:

$target_url = "[http:\[//\]iliria98\[.\]com][1]"; //delete [ and ] to get the url correctly
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';

// make the cURL request to $target_url
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
$html= curl_exec($ch);
if (!$html) {
    echo "<br />cURL error number:" .curl_errno($ch);
    echo "<br />cURL error:" . curl_error($ch);
    exit;
}

// parse the html into a DOMDocument
$document = new DOMDocument();
libxml_use_internal_errors(true);
$document->loadHTML($html);
libxml_clear_errors();
$selector = new DOMXPath($document);
//$anchors = $selector->query('//div[@class="single"]/div[2]');
$anchors = $selector->query('//div[@class="single"]/div');
foreach($anchors as $div) { 
    $text = $div->nodeValue;

    $valuta_arr=explode(',', $text);
    var_dump($valuta_arr);
    echo $text;
}

И вывод не правильный, так как он получает все коды валют с сайта, но значения валют только из первых строк, от USD Я хочу получить значения из таблицы html по указанному URL-адресу и вставить эти значения в базу данных для каждой валюты, где таблица базы данных выглядит следующим образом:

id
currency
sell
buy
date

I didn ' Я не могу получить код вставки mysql, так как я изо всех сил пытался в течение 3 дней сначала получить информацию для этого веб-сайта. Надеюсь, что кто-то может помочь мне в этом. Спасибо всем.

1 Ответ

0 голосов
/ 27 марта 2020

если вы попытаетесь получить эту страницу из консоли на curl http://iliria98.com, вы обнаружите, что этот виджет заполнен js -скриптом:

$('div#usd1').append('<div style="position: absolute; background: transparent; width: 100%; height: 100%; left: 0; top: 0; z-index: 9999;"></div>')
$(".kursiweb .single").eq(0).find("div").eq(1).html("114<sup>.20</sup>");  $(".kursiweb .single").eq(0).find("div").eq(2).html("116");

и т. Д. c .. .

Таким образом, вы можете получить необходимые данные только из этого скрипта в источнике HTML, который вы получаете из curl, а не из документа DOM, просто потому, что у curl не было никакого механизма JS.

Другой способ, которым вы можете go - использовать что-то вроде Призрак JS

...