ツイート
2020.03.20
Perlから「はてな」のブックマーク数を取得時に「slv3 alert handshake failure」が出て取得出来ないので他のサーバーに投げて代わりにwgetで取得されるメチャクチャな方法でごまかした個人的メモ
PerlからのHTTPSアクセスまわりがもう末期的な感じで、黄昏の言語なのかなと思っちゃう今日この頃。
しかし20年を超えるWeb運営の中で組んだ巨大で複雑怪奇なシステム群を別の言語で書き直すのも面倒だしねぇ・・・・、ここ数年でも何度かアクセス出来ないサーバーが出てきてPerlとか色々とアップデートしたらどうにかアクセス可能になったんだけど、直近だと「はてな」のAPIサーバーとかOSもPerlまわりも自動で出来るかぎり最新にしてもアクセス出来ないorz。
(1)通常のアクセス方法
$URLにアクセスするアドレスを入れて
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
$ua->agent('Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1');
my $req = HTTP::Request->new("GET",$URL);
$req->referer($URL);
これで$ua->request($req)->as_stringでアクセス先の内容が参照出来る。
(2)(1)の方法で取得すると「slv3 alert handshake failure」ってなる場合、Perlを諦めてwgetに投げるw
if ($ua->request($req)->as_string =~ /sslv3 alert handshake/){
my $targetUrl='"'.$URL.'"';
my $fname='getfiletemp.txt';
`/usr/bin/wget --no-check-certificate -q -O $fname $targetUrl`;
}
でファイル名$fnameにアクセスしたいURLの内容が入るのでそれを読み込む。
(3)wgetが利用出来ないレンタルサーバーの場合
(2)の内容をwget出来る別サーバーに投げて取得ww
で結局うちのサイトは(3)で動いてます。最終的に使っているコード
WebAccess('http://usepokcet.com')とかで取得出来る。
sub WebAccess{
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
$ua->agent('Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1');
my $req = HTTP::Request->new("GET",$_[0]);
$req->referer($_[0]);
if ($ua->request($req)->as_string =~ /sslv3 alert handshake/){
return(&WebAccess('http://xxxxx.xxx/p.cgi?url='.$_[0]));
}else{return($ua->request($req)->as_string);}
}
別サーバーのp.cgiの内容
#! /usr/bin/perl
use CGI;
my $q = new CGI;
my %FORM=();
my @FORMname= $q->param();
foreach my $dammy (@FORMname){$FORM{$dammy}=$q->param($dammy);}
print "Content-Type:text/html\n\n";
$targetUrl='"'.$FORM{'url'}.'"';
$fname='getfiletemp.txt';
`/usr/bin/wget --no-check-certificate -q -O $fname $targetUrl`;
my @Data=&GetAllData($fname);
print @Data;
exit;
sub GetAllData{
my $FLFile=$_[0];
my @FL;
open (FL,"$FLFile");
flock(FL,1);
@FL=;
close FL;
return (@FL);
}
乗り換えるとしたら何が良いんだろう?なるべく緩い言語が良いんだけどねぇ。
Python?、JavaScript +node.js?
Category:Perl・Javascript・python、サーバー管理メモ
Keyword:Access/19
orz/241
Java/50
コメント
いいっすね!=1
001 [03.21 01:23]匿名さん@Dion:昔から動いているものでHTTPSで接続エラーってことはTLS1.0/1.1の無効化が原因っぽい気がするので、まずはTLS1.2以降で接続できるか確認、出来ないようなら出来るようにモジュールやPerlの動いているサーバの設定の見直しとかしてみてはどうでしょうか? ↑
002 [03.21 01:27]匿名さん@Dion:個人的にはC#(.NET Core)かTypeScript(JavaScript)+node.jsですが、お仕事で分析とかに使うならPython、あんまり労力掛けたくなければRubyとかでもいいんじゃないでしょうか。 ↑(1)
003 [03.24 10:59]MotoZ2User:(1)で失敗するのは、LWPが使っているOpenSSLライブラリのバージョンが古いためと思います。流血沙汰+ワンコ(Heartbleed+poodle)のダブルコンボでメタメタなので。https://stackoverflow.com/questions/4760.... ↑
004 [03.24 11:03]MotoZ2User:モジュールの入れ方も進歩しているから、自動的に更新できる方法に変えた方がエエよ。昔は tarball を make したり、Perl::CPAN を叩いたり、cpanminus 入れたりしていたと思うけど、libwww-perl は apt-get で入る。 ↑
005 [03.24 11:14]ふぇちゅいん(管理人) TW★74:さくらVPSはWebminから全ライブラリアップデートしたら接続出来るようになったのでOKだったんだけど、レンタルサーバーってライブラリのアップデートしてくれなんだよ、まあ互換性の問題とか出てきたら面倒なんだろうけど。 ↑
006 [03.24 13:32]MotoZ2User:あー、レンサバですか。そらキツいわ…… 自分もディレクトリ変更からのmakeで無理やりぶち込んだかな。メンテナンスを考えると気が狂いそうだ。 ↑
2025.01.25正規表現のオンラインWebチェッカー
2021.12.05中国のSippedが50ドルQVGAののToFカメラユニットを今年中に出荷開始。UVC、UART/SPI出力3コメ
2021.12.05Pythonのコードをワンラインで実行形式に変換してくれるPyInstaller1コメ
2021.12.03チャート、グラフを書くのに良さそうなGoogle Chart以外のJavascriptライブラリ5つ3コメ
2021.11.18まだ使ってる?今は非推奨となったJavaScriptの書き方。document.writeが強く非推奨だと!!!?4コメ
2021.10.19PerlのGD::Image->new()は画像じゃないデータを読み込ませるとエラーになることがあるので事前に手動で画像であることを確認した方が良い1コメ
2021.10.12【解決済み】ヨドバシとかZOZOのサイトにどうやってもスクリプトからアクセス出来ない16コメ
2021.08.31現代的なPerlの記述方法一覧2コメ
2021.07.09JavaScriptでワンタッチで仮想キーボードを表示する2コメ
2021.02.10PythonでPowerPointを作るライブラリ「python-pptx」が色々活用出来そう。22コメ
→カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:82)
アクセス数の多い記事(過去1ヶ月)
●2025.03.20:どんな不都合が・・・(未分類)679access
●2025.03.14:8年ぶりにサンライズ出雲に乗車!家族4人で「ソロ個室」4部屋に上り乗車したメモ(#おでかけ情報)478access
●2024.09.15:我らがトライアル。ベトナム米を販売開始!(#グルメ・料理)451access
●2025.03.16:大量のレモンを余さず果汁絞るのが難しい。安い絞り器はクソばかり(#自宅DIY #ルーフテラス活用)444access
●2025.03.11:初めての焼き肉きんぐ(物語コーポレーション)の株主優待お食事券をゲット!!!!!優待・配当利回り年率3%程度(#お金 #マネー)361access
Java
Java 2025/04/01 08:46:イーロン・マスク率いるDOGEが6000万行ものCOBOLコードを含む社会保障局のシステムをコード生成AIでわずか数カ月の内に移行させようとしており危険性が指摘されている(はてなブックマーク - 人気エントリー - 総合) 2025/04/01 08:18:イーロン・マスク率いるDOGEが6000万行ものCOBOLコードを含む社会保障局のシステムをコード生成AIでわずか数カ月の内に移行させようとしており危険性が指摘されている(GIGAZINE) 2025/03/30 01:48:「CSS効いてない。なんで!?」って2時間ぐらい悩んでたら、先輩に「Chromeのシークレットモードで見てみ?」って言われて秒で解決した。これエンジニア界の常識なのか?(はてなブックマーク - 人気エントリー - 総合) 2025/03/26 15:10:マイナンバーのシステム開発の現場 2019?2020(ザード@) - カクヨム(はてなブックマーク - 人気エントリー - 総合) 2025/03/25 13:52:アピリッツ---子会社によるJUTJOY の株式取得 - 最新株式ニュース(ザイ・オンライントップ) |
Access 2025/04/01 07:02:(DeepL:お気に入りのポータブル・プロジェクターが今なら70ドル引き)My Favorite Portable Projector Is $70 Off Right Now(Lifehacker) 2025/04/01 00:32:(DeepL:ティーザー動画でOppo MagのFind X8s用ケースとアクセサリーを紹介)Teaser video shows off the Oppo Mag cases and accessories for the Find X8s(GSMArena.com - Latest articles) 2025/03/29 21:48:(DeepL:https://dl.fujifilm-x.com/support/manual/accessories/bc65n_manual_ja_en_fr_de_es.pdf)https://dl.fujifilm-x.com/support/manual/accessories/bc65n_manual_ja_en_fr_de_es.pdf(kaeru-no-tsuraのはてなブックマーク) 2025/03/28 22:32:(DeepL:アクセサリー付きアクションカメラが200ドル以下に)This Action Camera With Accessories Is Now Under $200(Lifehacker) 2025/03/28 04:52:(DeepL:Garminsの新しい有料版はAIでいっぱいだが、実際に便利そうだ)Garmin’s New Paid Tier Is Filled With AI, but Actually Seems Useful(Gizmodo) |
orz 2025/03/25 17:30:(DeepL:Oppo Find X8 Ultraはバッテリーを大幅に増やして登場する)Oppo Find X8 Ultra is coming with a huge battery increase(GSMArena.com - Latest articles) 2025/03/19 17:38:本日のお買い得商品 小型軽量な高倍率ズームレンズ「NIKKOR Z DX 18-140mm f/3.5-6.3 VR」がセール中(デジカメ Watch) 2025/03/04 03:06:(DeepL:格安ゲーミングスマートフォン「nubia Neo 3」と「Neo 3 GT」が正式発表、折りたたみ可能な「ZTE Flip2」はグローバル展開へ)nubia Neo 3 and Neo 3 GT budget gaming smartphones go official, ZTE Flip2 foldable now global(GSMArena.com - Latest articles) 2025/02/28 11:06:人気オープンワールドレースゲーム『Forza Horizon 5』PS5版の発売日が4月29日に決定。「Horizo??n Realms」の最新情報も公開。スタジアムトラックをはじめ、表彰タブや4種の車、新DLCなど新要素が盛りだくさん(電ファミニコゲーマー ? ゲームの面白い記事読んでみない?) 2025/02/28 06:04:(DeepL:Forza Horizon 5』、PS5でアーリーアクセスのゴミという奇妙な新形態を開拓)Forza Horizon 5 Pioneers Bizarre New Form Of Early Access Garbage On PS5(Kotaku) |