【问题标题】:How to scrape a ASP website using perl?如何使用 perl 抓取 ASP 网站?
【发布时间】:2012-09-04 08:08:49
【问题描述】:

请告诉我使用哪个模块来抓取一个完全用 ASP 开发的网站,并且它的所有内容都不是正确的 HTML 语法。

【问题讨论】:

    标签: perl asp-classic web-crawler


    【解决方案1】:

    使用哪种语言开发网站并不重要。您(客户)从网站获得的只是生成的 HTML(或在这种情况下损坏的 HTML)。

    您可以使用“LWP”库和“get”函数将网站内容读入一个变量...然后使用正则表达式对其进行分析。

    像这样:

    use strict;
    use LWP::Simple;
    my $url = 'http://...';
    my $content = get $url;
    if ($content =~ m/.../) {
        ...
    }
    

    【讨论】:

      【解决方案2】:

      或者你可以使用WWW::Mechanize。它建立在LWP(LWP::Simple 是一个非常简单的子集)之上,并提供了许多方便的“类似浏览器”的行为。例如,使用登录 cookie 和其他内容的 ASP 生成网站的典型会话管理由 Mechanize 自动处理。

      use strict; use warnings;
      use WWW::Mechanize;
      my $mech = WWW::Mechanize->new;
      $mech->get( 'http:://www.example.org/login.asp' );
      $mech->submit_form(
          form_number => 3,
          fields      => {
              username    => 'test',
              password    => 'secret',
          }
      );
      

      虽然这首先有利于测试,但它仍然具有 LWP 继承的方法,您可以访问普通请求。因此,您也可以访问请求,同时仍然拥有内置解析器访问表单和链接的能力。

      还要考虑使用适当的 HTML 解析器,即使网站的输出不是很花哨。周围有几个可以处理它。这将比建立a bunch of regexes 容易得多。一旦您需要返回,这些将很难维护,因为页面发生了更改。

      以下是包含此主题信息的相关问题列表:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多