Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   SЕО - тонкости, методы раскрутки (https://forum.antichat.xyz/forumdisplay.php?f=116)
-   -   Парсер текста (https://forum.antichat.xyz/showthread.php?t=94647)

Vid0k 03.12.2008 18:47

Парсер текста
 
В паблике нормальных не нашел поэтому написал свой.
Собирает тексты с http://www.sexytales.ru/
Адалт тематика.

[+]Убирает теги
[+]Разбивает все по текстам и сохраняет
[+]Разбивает по категориям

Требует php+cURL+chmod 777
Кому не охота загоняться уже спарсенные ~150 метров текста разбитые по категориям.Правда в них есть мусор.
Парсер
Тексты

Chaak 03.12.2008 19:11

Цитата:

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.

Vid0k 03.12.2008 19:21

Цитата:

Удалять теги можно функцией strip_tags
я их и удаляю ей, просто она не весь хлам удаляет

FeoЩту 03.12.2008 20:52

Цитата:

1. Каждый раз считает кол-во элементов.
2. sizeof быстрее count.
sizeof и count - это одно и то же, и выполнится она 1 раз

Chaak 03.12.2008 21:17

Цитата:

Сообщение от FeoЩту
sizeof и count - это одно и то же, и выполнится она 1 раз

После каждого раунда цикла, php будет проверять условие, а в условии оператор => он будет выполняться. Если массив будет большой, то скорость заметно снизиться.

А насчет sizeof, то тесты показали, что функция быстрее.

[Raz0r] 03.12.2008 21:36

алиас функции работает быстрее, чем сама функция? 0_о
Цитата:

А насчет sizeof, то тесты показали, что функция быстрее.
совершенно безосновательное утверждение
вот погуглил, сразу же нашел:
http://www.andreas-glaser.com/2008/08/19/php-count-vs-sizeof/
разницы никакой

Chaak 03.12.2008 21:41

Цитата:

Сообщение от [Raz0r]
алиас функции работает быстрее, чем сама функция? 0_о

совершенно безосновательное утверждение
вот погуглил, сразу же нашел:
http://www.andreas-glaser.com/2008/08/19/php-count-vs-sizeof/
разницы никакой

sizeof() будет быстрее, чем count(), при больших размерах массива.

[Raz0r] 03.12.2008 22:22

вот этот комент чтоли?
http://habrahabr.ru/blogs/php/22799/#comment_538772
по-моему также безосновательно...

FeoЩту 04.12.2008 07:43

Цитата:

Сообщение от ChaaK
После каждого раунда цикла, php будет проверять условие, а в условии оператор => он будет выполняться. Если массив будет большой, то скорость заметно снизиться.

А насчет sizeof, то тесты показали, что функция быстрее.

1)count вызовется 2 раза, независимо, сколько элементов в массиве.
2)sizeof не может быть быстрее count , потому что sizeof это
function sizeof($p) {
return count($p);
}

.:EnoT:. 04.12.2008 09:11

Цитата:

Сообщение от ChaaK
Код:

$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()

Цитата:

Сообщение от ChaaK
keep-alive работать не будет. Меняй на close

С чего ты это вообще взял? Если б как ты говоришь не работал keep-alive, то ни один браузер бы не работал) Просто удобнее использовать close в скриптах чтобы сервер разрывал коннект сразу после ответа. А keep-alive не будет работать например если укаать неправильную длину запроса (Content-Length)


Время: 05:49