|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 66655.3516 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
14.02.2009, 22:19
|
#1
|
Senior Member
Регистрация: 23.04.2007
Сообщений: 2,118
Бабло: $337995
|
Парсинг Title и Description
Разыскиваю скрипт, который заходит на сайт из перечисленных в отдельном тхт-файле и сохраняет title и description этих сайтов в отдельные titles.txt и descriptions.txt соответственно.
Подскажите, пожалуйста, есть ли какое паблик-решение?
|
|
|
14.02.2009, 23:29
|
#2
|
Злой гамбургер
Регистрация: 04.07.2008
Сообщений: 84
Бабло: $970
|
честно говоря фиг его знает, скорее всего есть, просто это пар строк кода..
|
|
|
14.02.2009, 23:43
|
#3
|
Senior Member
Регистрация: 28.10.2007
Сообщений: 102
Бабло: $5303
|
Цитата:
Сообщение от Grut
Разыскиваю скрипт, который заходит на сайт из перечисленных в отдельном тхт-файле и сохраняет title и description этих сайтов в отдельные titles.txt и descriptions.txt соответственно.
Подскажите, пожалуйста, есть ли какое паблик-решение?
|
Код:
use strict;
use IO::All;
use WWW::Mechanzie;
my $mech = WWW::Mechanize->new();
foreach my $link(split(/\n/,io('input.txt')->all)){
my $content = $mech->get($link);
$content =~ /<title>(.*?)</sg;
my $title = $1;
$title >> io(' titles.txt') if $title;
$content =~ /<description>(.*?)</sg;
my $desc = $1;
$desc >> io(' descriptions.txt') if $desc;
}
|
|
|
14.02.2009, 23:48
|
#4
|
Злой гамбургер
Регистрация: 04.07.2008
Сообщений: 84
Бабло: $970
|
PHP код:
<?php
ob_implicit_flush();
$urls = file("urls.txt");
$file_titles = fopen("titles.txt", "a");
$file_descs = fopen("descriptions.txt", "a");
$pattern1 = "/<title>(.*?)<\/title>/is";
$pattern2 = "/<meta name=(\"|')description(\"|') content=(\"|')(.*?)(\"|')(.*?)>/is";
foreach ($urls as $one_url)
{
$html = file_get_contents(trim($one_url));
preg_match($pattern1, $html, $matches);
fwrite($file_titles, $matches[2]);
preg_match($pattern2, $html, $matches);
fwrite($file_titles, $matches[4]);
echo $one_url . " done.<br />";
}
fclose($file_titles);
fclose($file_descs);
?>
рядом со скриптом кладешь urls.txt со списком урлов, 1 на строку
на папку chmod 0777
|
|
|
17.02.2009, 11:20
|
#5
|
Senior Member
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
|
Ага,только строку
fwrite($file_titles, $matches[4]);
меняем на
fwrite($file_descs, $matches[4]);
|
|
|
17.02.2009, 14:27
|
#6
|
Senior Member
Регистрация: 23.07.2008
Адрес: Kiev
Сообщений: 398
Бабло: $81715
|
А можно еще какой-то примитивный кравлер по странице карты сайта ? СПс за скриптец большое )
|
|
|
21.02.2009, 19:30
|
#7
|
Senior Member
Регистрация: 23.04.2007
Сообщений: 2,118
Бабло: $337995
ТС -->
|
ТС
Dude, я не силен в программировании. Это как запускать?
-Sunday-
Тиитлы скрипт парсит, а вот descriptions.txt остаётся пустым.
Если возьмешься исправлять, то сделай пожалуйста, чтоб титл и деск с каждого сайта записывался с новой строки.
|
|
|
22.02.2009, 00:49
|
#8
|
Senior Member
Регистрация: 28.10.2007
Сообщений: 102
Бабло: $5303
|
Цитата:
Сообщение от Grut
Dude, я не силен в программировании. Это как запускать?
|
сохрани в file.pl
потом
$perl file.pl
|
|
|
22.02.2009, 00:53
|
#9
|
Senior Member
Регистрация: 11.09.2007
Сообщений: 147
Бабло: $4485
|
Можешь еще тут просмотреть
|
|
|
22.02.2009, 00:56
|
#10
|
Дохуя дорвейщик
Регистрация: 26.11.2008
Сообщений: 898
Бабло: $55079
|
del
__________________
If you can dream - and not make dreams your master
|
|
|
|