@rusgayfer

Как вытащить данные со страницы сайта?

Как на php вытащить данные с сайта?

Вот хочу с этого сайта http://randstuff.ru/fact либо с этого http://webdiscover.ru/facts вытащить случайный факт, при перезагрузки страницы факт меняется, как это реализовать. Чтобы скрипт брал данные с этой строки?
  • Вопрос задан
  • 1392 просмотра
Решения вопроса 2
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
echo file_get_contents('http://webdiscover.ru/facts/rand.php');
Ответ написан
@rusgayfer Автор вопроса
Сделал так:

$href = 'http://randstuff.ru/fact';
$page = file_get_contents($href);
preg_match("/<table. *class=\"text\"><tr><td>(.*)<\/td><\/tr><\/table>/",$page,$match);
echo $match[1]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
ставим simplehtmldom.sourceforge.net и радуемся
Можно все стянуть себе в базу и брать от туда, стянуть можно по ссылкам
randstuff.ru/fact/1
randstuff.ru/fact/2
и т.д. как ошибку начнет выдавать, значит кончились
Ответ написан
Комментировать
KorniloFF
@KorniloFF
Работаю по font-end / JS
Вот такой функцией пользуюсь я для подобных задач:
/*
Запрос ответа со стороннего хоста
@url - запрашиваемая страница
RegExp @patt - регулярное выражение для парсинга ответа
returns соответствие $patt, либо response
*/
$kff['getFromServer']= function (string $url, $patt=null) {
	$ch = curl_init();
	# Получаем нужную страницу в переменную $answer
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$answer=curl_exec($ch);
	curl_close($ch);
	if (!empty($patt)) {
		preg_match($patt, $answer, $m);
		return $m;
	} else return $answer;
};
Ответ написан
Комментировать
zavoluk
@zavoluk
Frontend Developer
Это называется web scraping. Сам я не пользовался, но предполагаю, что нужно делать get запрос. randstuff.ru/fact с этого адреса удалось получить инфу. Пример https://www.hurl.it/ вводите адрес (randstuff.ru/fact), нажимаете Launch Request. И придет документ. Далее его нужно пропарсить, и вытащить нужный элемент. Вот то же самое нужно написать на PHP.

Господа, я сам в веб-разработке ещё зеленый, поэтому если я ошибаюсь, пожалуйста поправьте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы