Привет всем!
В общем то imacros напичкан прям таки уроками о том как извлекать данные из страницы и записывать их в файлы ... хуман отнюдь не сильно удивляет такими уроками. Девиз компании, Не надо знать php ... ну как бы не так господа. В общем в связи с этим предлагаю сделать полноценный урок по выпарсиванию текстов из стайтов.
Дано сайт:
http://www.billdwhite.com/wordpress/
посты постраничный
p=1....
Задача выдрать текст с каждой страницы:
Название статьи (не путать с тайтлом)
Далее сам текст статьи
Разграничить их каким то разделителем, пусть это будет
--------------
И записать каждую статью в файл txt.
И так сколько стаетй столько и файлов соотвествено.
Вот простите меня но все люди кторые покупают не думаю что они боги в регепсах и им нужны такие уроки пусть даже на закрытом форуме. Пожалуйста сделайте и расскажите как грамотно на примерах парсить регепсами. Да можно отправить читать мануал, но думаю что стоит все таки тут такой урок вывести.
Помогите сделать парсинг стайта
для регэкспов до посинения изучаем http://www.php.ru/manual/ref.pcre.html
несколько десятков часов жизни надо потратить, да.
по-другому не получится
Извлечь "Название статьи" будем Вам Домашним заданием
несколько десятков часов жизни надо потратить, да.
по-другому не получится
Код: Выделить всё
ini_set("max_execution_time","0");
ini_set("display_errors","on");
/*
делаем по ленивому: смотрим последний пост http://www.billdwhite.com/wordpress/?p=231
предполагаем что существуют 231 пост
тупо обходим их в цикле
*/
for($i=230; $i<232; $i++) {
$url = "http://www.billdwhite.com/wordpress/?p=".$i;
print_r($url);
$html = getCurlcontent($url);
//print_r($html);
/*
теперь парсим полезный контент
*/
preg_match_all ("~<div class=\"entry\">(.*)<div class=\"pumpkins\">~ism", $html, $m);
print_r($m[1][0]);
echo "<hr>";
/*
если всё гут и в $m[1][0] лежит свеже-спиженное то пишем в файл
*/
if(!empty($m[1][0])) {
write_string($i.".txt", $m[1][0]);
}
}
function getCurlcontent($url)
{
$cUrl = curl_init();
curl_setopt($cUrl, CURLOPT_URL, $url);
curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cUrl, CURLOPT_TIMEOUT, '3000');
$pageContent = trim(curl_exec($cUrl));
curl_close($cUrl);
return $pageContent;
}
function write_string($filename, $record, $type = "w"){
$logFile = fopen($filename,$type);
fwrite($logFile,$record);
fclose($logFile);
}
Можно так, взять заголовок.
Код: Выделить всё
preg_match("/<div class=\"title\">(.|\n)*?<\/div>/i", $html, $m1);
preg_match("/<h2>.*?<\/h2>/i", $m1[0], $m2);
$zagolovok=strip_tags($m2[0]);
Рубишь бабло, поделись с другими, но нераспростроняйся в сети.