Просмотр полной версии : Парсер текста
В паблике нормальных не нашел поэтому написал свой.
Собирает тексты с http://www.sexytales.ru/
Адалт тематика.
[+]Убирает теги
[+]Разбивает все по текстам и сохраняет
[+]Разбивает по категориям
Требует php+cURL+chmod 777
Кому не охота загоняться уже спарсенные ~150 метров текста разбитые по категориям.Правда в них есть мусор.
Парсер (http://narod.ru/disk/4158564000/Sexytales_parser.rar.html)
Тексты (http://narod.ru/disk/4158516000/Content.rar.html)
while($i<count($pages))
1. Каждый раз считает кол-во элементов.
2. sizeof быстрее count.
Предлагаю исправить на следующее
for($i = 0, $c = sizeof($pages); $i < $c; $i++)
Удалять теги можно функцией strip_tags
$header[0]="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11";
$header[1]="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[2]="Accept-Language: en-us,en;q=0.5";
$header[3]="Accept-Encoding: none";
$header[4]="Accept-Charset: ISO-8859-1;q=0.7,*;q=0.7";
$header[5]="Keep-Alive: 300";
$header[6]="Connection: keep-alive";
$header[7]="Cache-Control: max-age=0";
$ua = 'Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
Зачем? У тебя же есть curl! Там все заранее написано. + Acceptы вырежи, т.к они нужны только браузеру, а не тебе) Cache контрол тоже. keep-alive работать не будет. Меняй на close
$file = fopen("Ero/".$cat[$cat2]."/".$title.".txt","w+") or die("fOpen[200]:Could't open/read/write file $title");
fputs($file,$content);
fclose($file);
Для однократной записи достаточно использовать file_put_contents.
Удалять теги можно функцией strip_tags
я их и удаляю ей, просто она не весь хлам удаляет
1. Каждый раз считает кол-во элементов.
2. sizeof быстрее count.
sizeof и count - это одно и то же, и выполнится она 1 раз
sizeof и count - это одно и то же, и выполнится она 1 раз
После каждого раунда цикла, php будет проверять условие, а в условии оператор => он будет выполняться. Если массив будет большой, то скорость заметно снизиться.
А насчет sizeof, то тесты показали, что функция быстрее.
алиас функции работает быстрее, чем сама функция? 0_о
А насчет sizeof, то тесты показали, что функция быстрее.
совершенно безосновательное утверждение
вот погуглил, сразу же нашел:
http://www.andreas-glaser.com/2008/08/19/php-count-vs-sizeof/
разницы никакой
']алиас функции работает быстрее, чем сама функция? 0_о
совершенно безосновательное утверждение
вот погуглил, сразу же нашел:
http://www.andreas-glaser.com/2008/08/19/php-count-vs-sizeof/
разницы никакой
sizeof() будет быстрее, чем count(), при больших размерах массива.
вот этот комент чтоли?
http://habrahabr.ru/blogs/php/22799/#comment_538772
по-моему также безосновательно...
После каждого раунда цикла, php будет проверять условие, а в условии оператор => он будет выполняться. Если массив будет большой, то скорость заметно снизиться.
А насчет sizeof, то тесты показали, что функция быстрее.
1)count вызовется 2 раза, независимо, сколько элементов в массиве.
2)sizeof не может быть быстрее count , потому что sizeof это
function sizeof($p) {
return count($p);
}
.:EnoT:.
04.12.2008, 09:11
$header[0]="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11";
$header[1]="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
.....
Зачем? У тебя же есть curl! Там все заранее написано. + Acceptы вырежи, т.к они нужны только браузеру, а не тебе) Cache контрол тоже.
По идее там курл вообще не нужен, можно обойтись простым file_get_contents()
keep-alive работать не будет. Меняй на close
С чего ты это вообще взял? Если б как ты говоришь не работал keep-alive, то ни один браузер бы не работал) Просто удобнее использовать close в скриптах чтобы сервер разрывал коннект сразу после ответа. А keep-alive не будет работать например если укаать неправильную длину запроса (Content-Length)
Исходный код не смотрел, но насколко я помню в манах функции count() на php.net написано, что count() является псевдонимом sizeof(). То есть это одна и та же функция. Кстати вот (http://ru2.php.net/sizeof) А вообще раздел SEO и раздел о пыхе это 2 разных раздела =). Комрад вообще-то старался, и выложил скрипт за спасибо, но спасибо так и не услышал.
а можно перезалить?
ТС, а скрипт парсит только с указанного сайта, если ему подменить урл другой сайт парсить не будет?
а можно перезалить?
ТС, а скрипт парсит только с указанного сайта, если ему подменить урл другой сайт парсить не будет?
Я не ТС но ответить могу
скрипт написан специально под данный сайт. Если подменить урл то ничего не выйдет, если только структура другого сайта будет точно такой же.
Я не ТС но ответить могу
скрипт написан специально под данный сайт. Если подменить урл то ничего не выйдет, если только структура другого сайта будет точно такой же.
если не трудно выложи его куда-нибудь =)
SleepShadowWeb
11.02.2009, 15:19
не имею исходника, но если в цикле переменная не меняется, тогда всё проще:
$count_pages = count($pages);
while($i<$count_pages)
скрипт удален с народа.
может ТС будет так любезен перезалить?)
(хочу посмотреть исходник для себя)
Дайте ссылочку на другие парсеры текстов, плз..
Надо хоть когда-то и свой написать=))
Вася Рогов
28.08.2009, 06:05
скрипт удален с народа.
может ТС будет так любезен перезалить?)
(хочу посмотреть исходник для себя)
Дайте ссылочку на другие парсеры текстов, плз..
Надо хоть когда-то и свой написать=))
ап, актуальная тема, хоть и старая ;)
Вася Рогов
28.08.2009, 06:20
Дайте ссылочку на другие парсеры текстов, плз..
http://forum.antichat.ru/thread89080.html
http://forum.antichat.ru/thread89109.html
http://forum.antichat.ru/thread24603.html
паресер слов http://company.yandex.ru/technology/mystem/
есть и сорцы
Вася Рогов
28.08.2009, 16:48
есть и сорцы php ?
quickmouse
21.05.2010, 17:33
еще один суперский и простой парсер (http://iamfly.ru/?p=91) , рекомендую
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot