【问题标题】:How do I crawl through a welcome page with Perl LWP?如何使用 Perl LWP 爬取欢迎页面?
【发布时间】:2011-10-22 22:12:36
【问题描述】:

我正在尝试使用 Perl LWP 抓取此页面:

http://livingsocial.com/cities/86/deals/138811-hour-long-photo-session-cd-and-more

我有过去能够处理生活社交的代码,但它似乎已经停止工作。基本上这个想法是抓取页面一次,获取它的 cookie,在 UserAgent 中设置 cookie,然后再抓取两次。通过这样做,您可以通过欢迎页面:

$response = $browser->get($url);
$cookie_jar->extract_cookies($response);  
$browser->cookie_jar($cookie_jar);
$response = $browser->get($url);
$response = $browser->get($url);

这似乎已不再适用于普通的 LivingSocial 页面,但似乎仍适用于 LivinSocialEscapes。例如:

http://livingsocial.com/escapes/148029-cook-islands-hotel-+-airfare

关于如何通过欢迎页面的任何提示?

【问题讨论】:

    标签: perl cookies lwp


    【解决方案1】:

    看起来此页面仅适用于支持 Javascript 的浏览器(LWP::UserAgent 不支持)您可以尝试使用WWW::Mechanize::Firefox

    use WWW::Mechanize::Firefox;
    my $mech = WWW::Mechanize::Firefox->new();
    $mech->get($url);
    

    请注意,您必须安装 Firefox 和 mozrepl 扩展,此模块才能工作。

    【讨论】:

    • 你能给我一个简短的例子来说明我将如何使用 Mechanize 做到这一点吗?谢谢
    • 嗯,所以我安装了 Mechanize::Firefox,cpan 告诉我 MozRepl 是最新的。但是当我运行您提供的代码时,我得到:无法连接,连接到“localhost”时出现问题,端口 4242:在 /usr/local/share/perl/5.10.1/MozRepl/Client.pm 第 144 行被拒绝连接/跨度>
    • @Vijay:看到这个question
    • 哇——它实际上与 Firefox 浏览器交互!嗯,我希望有一个更简单的解决方案(尽管我非常感谢你的回复 Eugene),因为我运行爬虫的生产环境没有运行 Firefox。从我在实际生活社交页面中看到的内容来看,我没有看到任何相关的 JavaScript 代码。我相信它只是为您是否看到欢迎页面设置了一个肮脏的cookie。
    • 顺便说一句 Eugene,您的解决方案有效(谢谢!)我只是希望有更轻量级的东西。感觉就像我在用战斧砸鸡蛋:)
    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 2012-01-12
    • 2015-03-28
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多