Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

perl: LWP и Crypt::SSLeay, а в ответ 403 Forbidden

36K
07 июля 2009 года
temporary_user
50 / / 07.05.2009
и снова здравствуйте :)
скрипт, о котором вчера шла речь, оказался не совсем рабочим
(http://forum.codenet.ru/showthread.php?t=55662)

вот код:
Код:
#!usr/bin/perl

#use strict;
use warnings;
#----частьА----
use LWP::Simple;
#----частьА----

my $outFile = "list.txt";
my $tempFile = "tmp.txt";
my $url = "http://proxy_list/";

#код html-страницы со списком сохраняется на диске;
open(FSOURCE, "> $tempFile");
#----частьА----
my $content = get $url;
#----частьА----
print(FSOURCE "$content");
close(FSOURCE);


#итоговый файл;
open(FHANDLE, ">> $outFile");
#опять открываем временный файл для его обработки;
open(FIN, "$tempFile");

#поточное вычленение адресов;
while (<FIN>) {
    if ($_ =~ />([0-9a-zA-Z]+(\.[0-9a-zA-Z]+)+)<\// ) {
        #запись в выходной файл в формате ".домN. ... .дом2.дом1"   // ".report.proxy.org"
        print (FHANDLE ".$1\n");
    };
};
close(FIN);
close(FHANDLE);


скрипт работает пока не попадает в "промышленную эксплуатацию"
сервер, с которого надо "сливать" исходный список - http://proxy.org/.

почитав описание и примеры, выяснилось, что LWP::Simple не работает с хттпс. поэтому подключаем возможность их обработки. меняем в скрипте "частьА" на следующее:
 
Код:
use LWP 5.64;

my $browser = LWP::UserAgent->new;
my $content = $browser->get($url);
#как и указано в теме пакет Crypt::SSLeay установлен


и вроде бы всё работает, пока дело не доходит до нужного сайта.
то есть все остальные хттпс сайты(гмаил, пайпал) указанным способом получаются, а на запрос proxy.org возвращает 403-ю ошибку.
на перлдоке про такую проблему вообще не упоминается. может кто сталкивался? как обойти эту авторизацию?
92
08 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
возможно даже проверяется по User-Agent, проставь какой-нибудь известный (с IE или FF). Чем чёрт не шутит.

а конкретно скажи, какой URL дёргается?
36K
08 июля 2009 года
temporary_user
50 / / 07.05.2009
Цитата: Тень Пса
возможно даже проверяется по User-Agent, проставь какой-нибудь известный (с IE или FF). Чем чёрт не шутит.

а конкретно скажи, какой URL дёргается?



вот же :) :

Цитата: temporary_user

сервер, с которого надо "сливать" исходный список - http://proxy.org/.



любой браузер нормального этот сайт открывает, а вот через перл - форбидден в ответ.
пытался посмотреть чего там браузеры отсылают, снифернув канал - так он, гад, шифрованный :D

36K
08 июля 2009 года
temporary_user
50 / / 07.05.2009
http://proxy.org/proxies_sorted.shtml - а вот конкретно страничка, из которой я адреса дёргаю.

если встает вопрос что урл не хттпс, то это мне тоже не понятно..

чтобы получить этот адрес, авторизовываться не надо; чтобы зайти на некоторые другие страницы - придется залогиниться (используя браузер).

через перл сначала пытался получить его через LWP::Simple - в ответ приходило, что нету пакета Crypt::SSLeay и поэтому соедениться нельзя,
когда я этот пакет поставил - в ответ приходит 403-я ошибка

еще раз замечу, что с другими хттпс-сайтами проблем нет.
300
08 июля 2009 года
ReDrum
689 / / 20.04.2000
Код:
#!/usr/bin/perl

use strict;
use warnings;

use LWP;

&main();

sub main {
    my $agent = LWP::UserAgent->new();
    $agent->agent('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008120121 Firefox/3.0.5');

    my $request = HTTP::Request->new(GET => 'http://proxy.org/proxies_sorted.shtml' );
    my $response = $agent->request($request);

    if ($response->is_success) {
        print $response->content;
    } else {
        $response->status_line;
    }
};
36K
08 июля 2009 года
temporary_user
50 / / 07.05.2009
магия 0_о

делал то же самое, что предложил ReDrum, но без выделения в main() - не работало, выдавало 403

по примеру ReDrum'a - висит и не отвечает...ждал около 30 мин, но и ошибок никаких не показывает
может LWP с моим днк несовместим? :D

perl у меня 5.8.8 от activestate;
сейчас попробую обновить до 10-ки
300
08 июля 2009 года
ReDrum
689 / / 20.04.2000
Цитата: temporary_user
магия 0_о

делал то же самое, что предложил ReDrum, но без выделения в main() - не работало, выдавало 403

по примеру ReDrum'a - висит и не отвечает...ждал около 30 мин, но и ошибок никаких не показывает
может LWP с моим днк несовместим? :D

perl у меня 5.8.8 от activestate;
сейчас попробую обновить до 10-ки



Все равно какая версия перла стоит.
30 мин оно не может висеть в консоли, По умолчанию в конструкторе LWP::UserAgent стоит 180 секунд,
Хотя, если смотришь на виндовой машине и включена каккая нибудь приблуда аля какой нить файрвол, которая блокирует сетевую активность "неизвестного" ))) приложения - это более менее правдоподобное объяснение

Можно посмотреть что происходит добавив такие строки

 
Код:
...
my $response = $agent->request($request);

use Data::Dumper;
print Dumper($response);

if(....) ...
92
08 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
вот хвост резалта:
Цитата:

<li><a>hidelive.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>surfeverywhere.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>ownd.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>prx2.info</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>cleansheet.info</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>netbitch.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>doyouweb.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>friendsterunblock.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>internettoy.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>yourproxy2u.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>abeo.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>proxyug.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>tryeuro.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>lemonblue.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>grapebox.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>10v.pl</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>whitepillow.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>apricotbox.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>unblockmyspace2.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>cherrybox.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>roxzo.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>es175.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>redonestar.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>access2myspace.com</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>clearstatus.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>inet-media.nl</span>&nbsp;&nbsp;(Zelune)</li>
<li><a>proxybaby.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>playtimeonschool.info</span>&nbsp;&nbsp;(Glype)</li>
<li><a>proxy-sites.eu</span>&nbsp;&nbsp;(Glype)</li>
<li><a>bbcproxy.info</span>&nbsp;&nbsp;(PHProxy 0.5)</li>
<li><a>b

там страничка весит 700 к, и отдаётся ну мегамедленно. поставил, ушел кушать. вот вернулся, уже готово )

Код:
#!/usr/bin/perl

use strict;

use LWP::UserAgent;


    my $agent = LWP::UserAgent->new();
    $agent->agent('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008120121 Firefox/3.0.5');
    $agent->timeout(10);
    $agent->env_proxy();
    my $response = $agent->get('https://proxy.org/proxies_sorted.shtml');

    if ($response->is_success) {
        print $response->content;
    } else {
        print $response->status_line;
    }
upd: перепротестил, секунд 10 и отдаёт хвост =)
upd2: посмотри сорец lwp-download (по идее в /usr/bin), ему пофигу откуда какой файл качать =)
36K
08 июля 2009 года
temporary_user
50 / / 07.05.2009
виноват, моя ошибка.....а точнее кривые ручки
все действительно работает. спасибо всем!
92
08 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
гг =) а в чем у тебя ошибка-то была? )
36K
09 июля 2009 года
temporary_user
50 / / 07.05.2009
Цитата: Тень Пса
гг =) а в чем у тебя ошибка-то была? )



да я на работе через проксю подключен, и вот пару дней назад когда начались, там же еще и файрвол внутренний зачем то врубили.

попробовал дома тот же скрипт - все отлично работает.
сейчас вот опять на работе попробовал, предварительно отключив фаервол, - работает :)
после совета ReDrum'a решил перепроверить всё это дело; помогло ))
за что отдельное спасибо)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог