代码之家  ›  专栏  ›  技术社区  ›  KTamas

如何使用Perl进行screen操作?

  •  7
  • KTamas  · 技术社区  · 7 年前

    我需要显示一些存储在网站中的值,为此我需要浏览网站并从表中获取内容。有什么想法吗?

    10 回复  |  直到 17 年前
        1
  •  6
  •   Paolo Bergantino    17 年前

    如果您熟悉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

    不管你做什么,不要用正则表达式。

        2
  •  4
  •   weismat    17 年前

    HTML Table Extract 在过去。 我个人觉得它使用起来有点笨拙,但也许我没有很好地理解对象模型。 我通常使用手册的这一部分来检查数据:

     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
  •  3
  •   Dave Sherohman    17 年前

    虽然我一般都是这样做的 LWP / LWP::Simple ,当前Perl中任何类型的网页抓取的“首选”模块是 WWW::Mechanize .

        4
  •  2
  •   mirod    17 年前
        5
  •  2
  •   fanbondi    15 年前

    您还可以使用这个简单的perl模块WEB::Scraper,它很容易理解,让我的生活更轻松。请遵循此示例了解更多信息。

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

        6
  •  2
  •   Eric Z Beard    9 年前
        7
  •  1
  •   mr.szgz    16 年前

    WWW::Scripter -'用于为具有脚本的网站编写脚本'

    快乐远程数据聚合;)

        8
  •  1
  •   bem33    16 年前

    看看神奇的 Web::Scraper ,这是

        9
  •  0
  •   J.J.    17 年前

    我用 LWP::UserAgent 我的大部分屏幕刮需要。你也可以把它和 HTTP::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.
    }
    
        10
  •  0
  •   juFo    16 年前