Открытие веб-сайта - PullRequest
       2

Открытие веб-сайта

0 голосов
/ 13 февраля 2011

Я немного новичок в Perl.Мой друг просит меня написать ему программу, которая могла бы искать конкретное объявление на его любимой веб-странице для продажи лодок.Это очень удобная небольшая программа, которая позволит пользователю выполнять поиск определенных объявлений на нескольких веб-сайтах.

Вот как это работает.Я загружаю веб-страницу во временный файл, ищу подходящее объявление и возвращаю результат.В большинстве случаев он работает нормально, но я заметил, что какой-то сайт не загружается, и я не знаю, почему.

Вот скрипт, который загружает страницы и сохраняет временный файл:

use LWP::UserAgent;

use HTTP::Response;

use URI::Heuristic;

unless (defined ($content = get ($URL) )) { print "could not get $URL <br>"; }

open (DATABASE, ">$web_page_file");

print DATABASE "$content";

close (DATABASE);
#

Я успешно запустил его на многих сайтах, и он отлично работает.Но в последнее время 2 сайта не загружаются.Это:

http://www.babord.ca

http://www.sailboatlistings.com

У меня есть 2 вопроса:

A) Можете ли вы сказать мне, что не так с моим сценарием сэти два сайта?

B) Более важно, есть ли диагностический инструмент, который может сказать мне, какие проблемы (для будущего проблемного сайта)?

1 Ответ

1 голос
/ 09 марта 2011

Пример, который вы опубликовали, совершенно не работает для меня, и вы не говорите точно, что не работает с двумя примерами, которые вы приводите, поэтому сложно отладить ваш пример.Ниже работает, и я думаю, что это более чистый способ получить то, что вы ищете:

#!/usr/bin/perl

use strict;
use warnings;
use WWW::Mechanize;

my $URL = 'http://www.yourboatsite.com';
my $mech = WWW::Mechanize->new();  #Autocheck defaults to ON to check for success.
$mech->get($URL);  # Use :content_file option to auto-write to a file.

print $mech->content();

Вы также, вероятно, хотите пометить вашу запись как perl, а не mod-perl, так как это не проблема mod_perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...