Как я могу очистить экран с помощью Perl? - PullRequest
7 голосов
/ 03 апреля 2009

Мне нужно отобразить некоторые значения, которые хранятся на веб-сайте, для этого мне нужно очистить веб-сайт и извлечь содержимое из таблицы. Есть идеи?

Ответы [ 10 ]

6 голосов
/ 03 апреля 2009

Если вы знакомы с jQuery, вы можете проверить pQuery , что делает это очень простым:

## print every <h2> tag in page
use pQuery;

pQuery("http://google.com/search?q=pquery")
    ->find("h2")
    ->each(sub {
        my $i = shift;
        print $i + 1, ") ", pQuery($_)->text, "\n";
    });

Там также HTML :: DOM .

Что бы вы ни делали, не используйте для этого регулярные выражения.

4 голосов
/ 03 апреля 2009

Я использовал Извлечение таблицы HTML в прошлом. Лично я нахожу его немного неуклюжим, но, возможно, я не очень хорошо понимал объектную модель. Я обычно использую эту часть руководства для изучения данных:

 use HTML::TableExtract;
 $te = HTML::TableExtract->new();
 $te->parse($html_string);

     # Examine all matching tables
     foreach $ts ($te->tables) {
       print "Table (", join(',', $ts->coords), "):\n";
       foreach $row ($ts->rows) {
          print join(',', @$row), "\n";
       }
     }`
3 голосов
/ 03 апреля 2009

Хотя я обычно делал это с LWP / LWP :: Simple , текущий «предпочтительный» модуль для любого вида очистки веб-страниц в Perl - WWW: :. Механизируйте 1007 *

2 голосов
/ 05 апреля 2011

Вы также можете использовать этот простой Perl-модуль WEB :: Scraper, это легко понять и упростить мне жизнь. следуйте этому примеру для получения дополнительной информации.

http://teusje.wordpress.com/2010/05/02/web-scraping-with-perl/

2 голосов
/ 05 апреля 2009

Для похожих вопросов Stackoverflow взгляните на ....

Мне нравится использовать pQuery для подобных вещей, однако Web :: Scraper выглядит интересно.

2 голосов
/ 04 апреля 2009

Если вы знакомы с XPath, вы также можете использовать HTML :: TreeBuilder :: XPath . И если вы не ... ну, вы должны быть; -)

1 голос
/ 10 декабря 2009

Взгляните на волшебный Web :: Scraper , это THE инструмент для очистки веб-страниц.

1 голос
/ 10 декабря 2009

Я не хочу перетаскивать мертвую ветку, но любой, кто гуглит через эту ветку, должен также проверить WWW :: Scripter - 'Для скриптовых сайтов, на которых есть скрипты'

счастливое удаленное агрегирование данных;)

0 голосов
/ 10 мая 2010

Посмотрите на этот небольшой пример очистки веб-страниц с помощью Perl: текст ссылки

0 голосов
/ 03 апреля 2009

Я использую LWP :: UserAgent для большинства моих потребностей в очистке экрана. Вы также можете соединить это с HTTP :: Cookies , если вам нужна поддержка Cookies.

Вот простой пример того, как получить исходный код.

use LWP;
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new;
my $browser = LWP::UserAgent->new;
$browser->cookie_jar($cookie_jar);

$resp = $browser->get("https://www.stackoverflow.com");
if($resp->is_success) {
   # Play with your source here
   $source = $resp->content;
   $source =~ s/^.*<table>/<table>/i; # this is just an example 
   print $source;                     # not a solution to your problem.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...