Пишем парсер записей блога

4.48K
.
Koenig
(\/)____o_O____(\/)
ValekS (30.06.2013 / 21:03)
Уже накатал код парсящий все статьи с библиотеки этого сайта(johncms.com). Код парсит всю статью, даже если она разбита на странички. Вот только обход постраничной навигации чуть кривой. Буду думать е
в сессию напиши что количество символов 500000
будет все на одной странице
.
(\/)____o_O____(\/)
ValekS (30.06.2013 / 21:03)
Уже накатал код парсящий все статьи с библиотеки этого сайта(johncms.com). Код парсит всю статью, даже если она разбита на странички. Вот только обход постраничной навигации чуть кривой. Буду думать е
как вариант парсить карту библиотеки
.
Ей 25
Koenig (30.06.2013 / 21:22)
как вариант парсить карту библиотеки
Где её взять? И она не кругом же есть. Для Джона такой вариант может и прокатит. А для сайтов не на Джоне может и не подойти.
.
(\/)____o_O____(\/)
ValekS, можешь вывести на экран запрос
echo "insert into `lib` 
(`refid`, `time`, `type`, `avtor`, `ip`, `soft`, `moder`, `name`, `announce`, `text`)
values
" . implode(', ', array_map('mega_implode', $array)) . ")");

увидишь как это работает
.
Ей 25
Koenig (30.06.2013 / 21:19)
ValekS, как то так, не проверял на запись в базу
Спасибо. Проверю, если что подправлю и накатаю новую статью.
Вот тут снова не совсем понял:
в сессию напиши что количество символов 500000
.
Koenig
(\/)____o_O____(\/)
ValekS, тогда сначало маленькая функция которая проидется по библиотеке и найдет нужные ид
function url_file_exists($furl) {
$headers = get_headers($furl);
if (preg_match('|200|', $headers[0])) {
return true;
} else {
return false;
}
}

$url = 'http://helltar.ru/post-';
$array_urls = array();
for ($i = 1; $i<10000; $i++) {
if (url_file_exists($url . $i . '.html')) {
$array_urls[] = $i;
}
}
echo '<pre>';
print_r($array_urls);


полученный массив прогнать через curl с помощью foreach
.
(\/)____o_O____(\/)
ValekS (30.06.2013 / 21:28)
Спасибо. Проверю, если что подправлю и накатаю новую статью.
Вот тут снова не совсем понял:
если разобрать кад библиотеки, то там можно регулировать постраничную разбивку статей, cURL поможет, делаешь юзера авторизированного и в настройках ставим количество символов на страницу, по умолчанию для тела 2000, для компа 7000
.
Ей 25
Koenig, как работает твой предыдущий код я уже догнал. Просмотрел документацию по некоторым функциям(array_map, implode) и всё понял.
Теперь надо со вторым разбираться. Правдо смотрю на сегодня надо уже "шабаш" делать. Мозг выносить начинает. Гг
.
Ей 25
Koenig (30.06.2013 / 21:34)
если разобрать кад библиотеки, то там можно регулировать постраничную разбивку статей, cURL поможет, делаешь юзера авторизированного и в настройках ставим количество символов на страницу, по умолчанию
Ты об этом:
if (!empty($_SESSION['symb'])) {
$simvol = $_SESSION['symb'];
} else {
$simvol = 2000; // Число символов на страницу по умолчанию
}
Хотя дальше идёт такой код:
$symbols = core::$is_mobile ? 3000 : 7000;

Зачем тогда $simvol ?
.
(\/)____o_O____(\/)
ValekS, $simbol !== $simbols
Всего: 116