спарсить данные с сайта в переменные

sunyang

Мастер
Регистрация
25 Апр 2009
Сообщения
440
Реакции
30
Есть файл со ссылками на один и тот же сайт с продукцией.
Мне нужно спарсить заголовок, картинки и параметры товара, записать их чтоль в переменные и в базу своего сайта.

Подскажите, как можно спарсить инфу вот с этого сайта


Спасибо)
 
обычно, для простого парсинга хватает cURL и регулярных выражений.
 
PHP:
$html = file_get_contents('http://asia-fashion-wholesale.com/welcome/index.php/fashion/p_16642.html');
$title = preg_replace('#^(.*)<title>(.+)</title>(.*)#is', '$2', $html);
echo $title;

дальше ясно?)
 
PHP:
$html = file_get_contents('http://asia-fashion-wholesale.com/welcome/index.php/fashion/p_16642.html');
$title = preg_replace('#^(.*)<title>(.+)</title>(.*)#is', '$2', $html);
echo $title;
дальше ясно?)

немного не понятно, что делает функция preg_replace(), а точнее выражение в скобках '#^(.*)<title>(.+)</title>(.*)#is', '$2', $html
 
у меня похожая задача.
страница с постоянно повторяющимися тегами.
вырезаем между ними текст,загоняем в переменную.
как дальше разобрать эту переменную на 2 переменые,зная шаблон по какому там всё записанно.
и как сделать цикл,что бы предыдущий вырезаный текс не учитывался при следующем круге.
 
немного не понятно, что делает функция preg_replace(), а точнее выражение в скобках '#^(.*)<title>(.+)</title>(.*)#is', '$2', $html
заменяет все что в $html на то что между <title></title>
PHP:
preg_match('/<title>(.*?)<\/title>/is',$content,$match);
$title = $match[1];

preg_match('/<strong>Product Information<\/strong>(.*?)<strong>Product Code:<\/strong>/is',$content,$match);
$descr = $match[1];

preg_match_all('/\"(\/welcome\/images\/uploads\/\d{2,}.*?)\"/is',$content,$match);
$img1 = $match[1][0];
.....
тут наверное все понятно :)
 
немного не понятно, что делает функция preg_replace(), а точнее выражение в скобках '#^(.*)<title>(.+)</title>(.*)#is', '$2', $html
ок) давай разберем

1. # = ограничители паттерна
2. is = модификаторы.
2.1 i = case insensitive = все равно какой регистр
2.2 s = работа в однострочном режиме (т.е. режутся каретки)
3 ^ = начало строки, а точнее позиция перед началом строки
4 = (.*) = любые символы в любом количестве, кстати говоря, лучше сделать (.*?). подробнее читай в "жадность квантификаторов"
5 <title>(.+)</title> = символы внутри тэга
6 (.*) в конце = остальной код (не проверял, но имхо можно тут не писать)
7 $2 - второй карман замены

в данном случае в первом кармане все до тэга, во втором - содержимое тэга, в третьем - остальной код после тэга

надеюсь понятно написал :)

п.с. я на твоем месте почитал бы про регулярные выражения. они очень полезны в программировании. я бы сказал, что без них - никуда :)
 
а если мне в одном случае надо убрать жадность, а в другом нет?)
 
ок) давай разберем
1. # = ограничители паттерна
2. is = модификаторы.
2.1 i = case insensitive = все равно какой регистр
2.2 s = работа в однострочном режиме (т.е. режутся каретки)
3 ^ = начало строки, а точнее позиция перед началом строки
4 = (.*) = любые символы в любом количестве, кстати говоря, лучше сделать (.*?). подробнее читай в "жадность квантификаторов"
5 <title>(.+)</title> = символы внутри тэга
6 (.*) в конце = остальной код (не проверял, но имхо можно тут не писать)
7 $2 - второй карман замены
в данном случае в первом кармане все до тэга, во втором - содержимое тэга, в третьем - остальной код после тэга
надеюсь понятно написал :)
п.с. я на твоем месте почитал бы про регулярные выражения. они очень полезны в программировании. я бы сказал, что без них - никуда :)

Спасибо огромное. разобрался! можно ссылочку на почитать про регулярные выпажения?
 
Назад
Сверху