AmazonサイトからHTMLを取得する方法はある?

このQ&Aのポイント
  • AmazonサイトからHTMLを取得すると文字化けしてしまう問題があります。質問者は、この問題を解決するための方法を知りたいとしています。
  • 質問者は、AmazonサイトからHTMLを取得する際に文字化けが発生する問題に悩んでいます。この問題の解決策を教えてください。
  • AmazonサイトからHTMLを取得すると文字化けが発生してしまう問題があります。この問題に対して取り組んだ経験がある方は、解決策を教えてください。
回答を見る
  • ベストアンサー

Amazon サイトからhtmlを取得すると文字化

すみません。素人です。 Amazon サイトからhtmlを取得すると文字化けしてしまいます。 方法ってないでしょうか? *************** use strict; use warnings; use Web::Scraper; use URI; use Encode qw/encode_utf8/; my $scraper = scraper { process('div', 'title' => 'TEXT'); }; my $url = URI->new('https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=test'); my $res = $scraper->scrape($url); print encode_utf8($res->{title}) . "\n"; ******************

  • x001
  • お礼率6% (3/49)
  • Perl
  • 回答数6
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

このperlを実行しているターミナル(Windowsのコマンドプロンプト?)が UTF-8の文字コードの表示に対応できていないだけのことでしょう。 perl実行 コマンド > ファイル でファイル化したのちに、UTF-8に対応したエディターでそのファイルを閲覧するか もしくは、perlの最後を use Encode 'encode'; print encode('Shift_JIS',$res->{title}) . "\n"; のようにしてSJISでprintするようにして コマンドプロンプト上で確認するか でいけると思います。

その他の回答 (5)

noname#232800
noname#232800
回答No.5

ごめんなさい。バケという意味ではバケてますが、URLは機能します。

noname#232800
noname#232800
回答No.4

このサイトでも文頭に meta http-equiv="Content-Type" content="text/html; charset=UTF-8" と宣言され、UTF-8 の漢字コードを使ってます。 どうしても面白くない! という場合は、コピー・アンド・ペースト ではなく、打鍵せねばなりません。

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.3

>>Amazon サイトからhtmlを取得すると文字化けしてしまいます。 それは文字化けではありません。 htmlへの出力する場合、漢字や記号などは、そういうふうに変換するのが基本ルールです。

  • okvaio
  • ベストアンサー率26% (1784/6829)
回答No.2

この文字化けがどの様な内容のメールか分かりませんが、 注文の過程で、注文の確認や支払いなどのメールが来ますが、 私の場合、最後の発送の状況だけが何故か文字化けします。 問い合わせたところ、Amazonサイドに問題があるとの 回答でした。改善するのを待っています。 尚、配信メールの設定で、テキスト形式にできますので、 ご検討下さい。

x001
質問者

補足

実行すると下のように文字列で表示されます。 (Amazoの検索にTESTと入力した検索結果を取得してます。) Amazon 繝励Λ繧、繝繧貞縺吶∋縺ヲ Select the department you want to search in 縺吶∋縺ヲ縺ョ繧ォ繝・ざ繝ェ繝シKindle繧ケ繝医い Amazon繝薙ョ繧 ェ繝・ず繧ソ繝ォ繝溘Η繝シ繧ク繝・けAndroid 繧「繝励Μ譛ャ豢区嶌繝溘Η繝シ繧ク繝・け繧ッ繝ゥ繧キ繝・けDVDTV繧イ繝シ繝PC繧ス繝輔ヨ繝代た繧ウ繝ウ繝サ蜻ィ霎コ讖溷勣螳カ髮サ &繧ォ繝。繝ゥ譁・袷蜈キ繝サ繧ェ繝輔ぅ繧ケ逕ィ蜩√・繝シ繝&繧ュ繝・メ繝ウ繝壹ャ繝育畑蜩√ラ繝ゥ繝・げ繧ケ繝医い繝薙Η繝シ繝・ぅ繝シ繝ゥ繧ー繧ク繝・繧「繝ェ繝シ繝薙Η繝シ繝 ・ぅ繝シ鬟溷刀繝サ鬟イ譁吶・縺企・繝吶ン繝シ&繝槭ち繝九ユ繧」繝輔ぃ繝・す繝ァ繝ウツツツ繝ャ繝・ぅ繝シ繧ケツツツ繝。繝ウ繧コツツツ繧ュ繝・ぜ・・・繝薙・譛 搾シ・ヵ繧。繝・す繝ァ繝ウ蟆冗黄繧キ繝・繝シ繧コ・・ヰ繝・げ閻墓凾險医ず繝・繧ィ繝ェ繝シ縺翫b縺。繧・・繝薙・讌ス蝎ィ繧ケ繝昴・繝・繧「繧ヲ繝医ラ繧「繧ォ繝シ繝サ繝舌う繧ッ 逕ィ蜩.IY繝サ蟾・蜈キ螟ァ蝙句ョカ髮サ繧ッ繝ャ繧ク繝・ヨ繧ォ繝シ繝峨ぐ繝輔ヨ蛻ク逕」讌ュ繝サ遐皮ゥカ髢狗匱逕ィ蜩、mazon繝代Φ繝医Μ繝シAmazon繧「繧ヲ繝医Ξ繝・ヨ讀懃エ「 讀 懃エ「 縲€繧ォ繝・ざ繝ェ繝シ JP ツ 縺薙s縺ォ縺。縺ッ縲・繧オ繧、繝ウ繧、繝ウ繧「繧ォ繧ヲ繝ウ繝茨シ・Μ繧ケ繝域ウィ譁・ア・豁エ莉翫☆縺千匳骭イ繝励Λ繧、繝 繧ォ繝シ 繝・繝槭う繧ケ繝医い繧ソ繧、繝繧サ繝シ繝ォ繧ョ繝輔ヨ蛻クAmazon縺ァ螢イ繧九・繝ォ繝玲、懃エ「邨先棡 260 縺ョ縺・■ 1-24莉カ "繧オ繧ャ繝・0.01" 荳ヲ縺ケ譖ソ縺・ツ繧ュ 繝シ繝ッ繝シ繝峨↓髢「騾」縺吶k蝠・刀萓。譬シ縺ョ螳峨>鬆・分萓。譬シ縺ョ鬮倥>鬆・分繝ャ繝薙Η繝シ縺ョ隧穂セ。鬆・怙譁ー蝠・刀繧オ繧ャ繝溘が繝ェ繧ク繝翫Ν 0.01 5蛟句・

noname#232800
noname#232800
回答No.1

化けてないです(今Windowsなんで見えません) 相手のサーバーが UTF-8 なんでしょうね。

参考URL:
https://www.export-japan.co.jp/blog/
x001
質問者

補足

一様、Window10 で実行してます。

関連するQ&A

  • アマゾンで新しい商品を登録する方法

    あたらしい商品を登録したいのですが、どうやったらいいのでしょうか? また、同じ商品なのに、別の商品として多数登録されている事がありますが、これはどういった事なのでしょう?? http://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=%E9%A6%99%E6%B0%B4%E3%80%80%E3%83%91%E3%83%B3%E3%83%89%E3%83%A9&rh=i%3Aaps%2Ck%3A%E9%A6%99%E6%B0%B4%E3%80%80%E3%83%91%E3%83%B3%E3%83%89%E3%83%A9

  • JSON形式のデータ解析が出来なくて悩んでます。

    「Twitterから学ぶ,Web APIのキホン」(http://gihyo.jp/dev/serial/01/perl-hackers-hub/000403)のサンプルプログラムを参考にitunesの検索apiの検索結果を解析しようとしているのですが解析できなく、何も表示されない状態になります。 itunes 検索api http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html まずは上のSearch Examplesにいくつか示しているitunes apiの検索結果(jsonデータ)から"artistId"に対する項目や"artistName"に対する項目を抜き出そうと試みています。 以下は実際に私が実行しているプログラムです。 ----------------------------------------------------------------- print <<"HTML"; Content-type: text/html <html> HTML use LWP::UserAgent; use URI; use JSON qw(decode_json); use Encode qw(encode_utf8); my $uri = URI->new('※ここにitunes apiの検索結果のurl入れています'); my $ua = LWP::UserAgent->new; my $res = $ua->get($uri); my $json = $res->content; my $ref = decode_json($json); for my $applist ( @{ $ref->{results} } ) { print encode_utf8("$applist->{artistId}: $applist->{artistName}\n");} -------------------------------------------------------------------------------------- としているのですが結果は何も表示されません。※cgiはmac 環境にてUTF-8 Mac(CR)で保存しております。 「Twitterから学ぶ,Web APIのキホン」のサンプルプログラムは正常に動いて表示出来ているのでモジュールやPerlのパスには問題ないと思います。 どうすればitunes 検索apiのjsonデータがPerlでちゃんと解析されるのかご教示お願いします。

    • ベストアンサー
    • Perl
  • Parallel::ForkManager(2)

    前回の投稿で完全に書き間違えた部分がありそのままではよくわからないものになってしまっていたのですが、投稿し直しなどができなかったので再度投稿させてもらいます。 プログラムは use Web::Scraper; use WWW::Mechanize::Firefox; use Parallel::ForkManager; use URI; binmode STDOUT,":utf8"; sub func ; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(); $year += 1900 ; $mon += 1 ; $File = "yuma-$year:$mon:$mday:$hour.txt" ; open (file,"> $File") or die 'fail to open file\n'; print "HOW MUCH PAGE\n" ; my $page = <STDIN> ; print "WITEING...\n" ; my $MAX_PROCESSES = 5; my $pm = new Parallel::ForkManager($MAX_PROCESSES); for ($i = 1;$i <= $page;$i++) { $pm->start and next; my $uri = URI -> new ("www.目的とするURL$i.html"); my $mech = WWW::Mechanize::Firefox->new(); $mech->get($uri) ; print file $s->scrape($mech->content) ; print file "\n" ; print file $r->scrape($mech->content) ; print file "\n" ; $pm->finish; } print "WITEID\n" ; my $s = scraper { process 'font',sen => 'TEXT'; result 'sen'; }; my $r = scraper { process 'div#content',ren => 'TEXT'; result 'ren'; }; close (file) ; です。 $i の順序でファイルへ書き込みをしていきたいのですが、前の処理が終わっていなかった場合に待つ方法がわからないので初心者レベルで教えてください。

    • ベストアンサー
    • Perl
  • Web::Scraperの使い方で

    PerllのWeb::Scraperを使って商品の情報を取得するみたいなことをしたいのですが、下のコードでなぜかブランドと製造販売元が取得することができません。 http://www.kenko.com/product/item/itm_6521067072.htmlのソースを見てみると、<div class="ltxt brand">にブランド情報が、<div class="ltxt">に製造販売元の情報が書かれています。それなので、process "div.ltxt", "maker" => "TEXT";とすれば製造販売元の情報(文字列)が取得されるはずなのですが、なぜかブランド情報(process "div.ltxt.brand", "brand" => "TEXT";として得られるはず?)が得られてます。これはなぜでしょうか? またこのスクリプトWeb::Scraperでは基本的にclass="***"のようにクラスの定義がされていないものについては情報を取得できないのでしょうか?例えば、同ページのソースコードにある<div>内容量:250ml</div>や<div itemprop="identifier" content="upc:4987222787413">JANコード: 4987222787413</div>から内容量とJANコードの情報を得ることはできないでしょうか? #!usr/bin/perl use strict; use warnings; use Encode; use Web::Scraper; use URI; use utf8; binmode STDOUT, ":encoding(shiftjis)"; #scraperオブジェクトを作成 my $shinkan = scraper{ #processメソッドで抽出する要素と展開方法を指定 process "div.mainBox","fil_list[]"=> scraper{ #scraperメソッドを渡して,"td.c-table01"要素をさらに展開する process "h1.fn", "goods" => "TEXT"; # 商品名 process "div.ltxt.brand", "brand" => "TEXT"; # ブランド process "div.ltxt", "maker" => "TEXT"; # メーカー process "span.price" => "price" => "TEXT"; # 価格 }; }; #scrapeメソッドでスクレイピングを実行 my $res = $shinkan->scrape(URI->new("http://www.kenko.com/product/item/itm_6521067072.html")); foreach my $dat(@{$res->{fil_list}}){ #undefの場合は、""を代入する。 unless(defined($dat->{goods})) {$dat->{goods} = ""}; unless(defined($dat->{brand})){$dat->{brand} = ""}; unless(defined($dat->{maker})) {$dat->{maker} = ""}; unless(defined($dat->{price})){$dat->{price} = ""}; print "goods = ", $dat->{goods}, "\n"; print "brand = ", $dat->{brand}, "\n"; print "maker = ", $dat->{maker}, "\n"; print "price = ", $dat->{price}, "\n"; };

    • ベストアンサー
    • Perl
  • 文字コードの変換(Shift-JISからUTF8)

    文字コードがShift-JISのCSVファイルを読み込み、UTF-8のテキストファイルに出力するのに プログラムの中で変更しようとしているのですが、うまくいきません。出力ファイルの文字コードを 確認するとShift-JISのままです。 どなたか教えていただけないでしょうか? ActivePerl v5.16.0を使用し、Encodeモジュールのfrom_toを使用しています。 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; my $input_file="input.csv"; my $output_file="output.txt"; open (IN, $input_file) or die "$!"; open (OUT, ">$output_file") or die "$!"; while (<IN>){ chomp ($_); my @data=split(/,/,$_); for(my $i=0;$i<@data;$i++){ $data[$i]=Encode::from_to($data[$i],'shiftjis','utf8'); #Shift-JISからUTF-8に変換 $data[$i]=~s/\s+//g; print OUT $_; } print OUT "\n"; } close (IN); close (OUT);

    • ベストアンサー
    • Perl
  • スティック型PC

    最近 スティック型PCというものを知りました。 出張のとき、ホテルのテレビにつなげば、PCをもちあるかなくてもよいので、興味を持っています。 LINUX搭載のものが、非常に安くでていました。 https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=BOXSTCK1A8LFC LINUXは速いということを聞きます。ただ、外付けハードデイスク上の画像(.mov, .aviなど)が見れるか心配しています。この点いかがでしょうか。 またおすすめのスティック型あれば、教えてください。

  • アメリカのAmazon.comについての探し物があ

    http://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=uv+%83J%83b%83g+%83X%83v%83%8C%81%5B+%88%DF%97%DE のような衣類に吹き付けるタイプのUVカットスプレーをamazon.comで探しいるのですがどうしても見つけれません。 英語でどんなキーワードで探せばいいのでしょうか?

  • じゃらんのAPIでRESTで取得したら文字化け

    はじめて質問です。失礼があったらご容赦ください。 じゃらんAPIのRESTで取得したXMLデータを、単にテキストで 書き出したいのですが、どうしても文字化けしてしまいます。 いろいろ試したのですがどうしても駄目でした。 以下がそのスクリプトです。 どなたかご教示いただければ幸いです。 (作業環境:Windows XP / Perl5.8) use encoding 'utf8'; use Encode; use LWP::Simple; my $key='xxxxxxxxx'; my $url="http://jws.jalan.net/APILite/HotelSearch/V1/?key=$key&pref=120000&l_area=120500&s_area=120508&h_type=1&start=1&count=1"; my $data=get($url) or die; open W,'>:utf8','MyNouhin.txt' or die; print W $data; close W;

  • Perlのプログラムのエラーです。ローカルでは問題なく動きました。サー

    Perlのプログラムのエラーです。ローカルでは問題なく動きました。サーバはさくらサーバで文字コードはEUC-JPです。 CGIから文章をMECAPIという形態素解析APIに送って、品詞ごとにファイルに書き込みます。 Status: 500 Content-type: text/html Software error: Can't locate object method "content" via package "HTTP::Response=HASH(0x86e9250)" (perhaps you forgot to load "HTTP::Response=HASH(0x86e9250)"?) at test9.cgi line 49. #!/usr/local/bin/perl use strict; use warnings; use LWP::UserAgent; use Encode qw/encode decode/; use utf8; use CGI; use CGI::Carp qw( fatalsToBrowser); my $str; my $i; my $j; &main; sub main{ my $q = new CGI(); $str = $q->param( "words" ); $str = decode('euc-jp', $str); my $title = encode('euc-jp', "MeCab APIを呼出す"); my $h1 = encode('euc-jp', $str . "の品詞"); print $q->header( -type =>"text/html", -charset => "euc-jp" ); print "<meta http-equiv=\"refresh\" content=\"5;URL=./test2.html\">"; print $q->start_html( $title ), $q->h1( $h1 ), $q->start_ul; my $esc = CGI::escape($str); Encode::from_to($esc, "euc-jp", "utf8" ); my $ua = LWP::UserAgent->new; $ua->agent('PerlSample/0.1'); $ua->timeout(5); my $response = $ua->get('http://mimitako.net/api/mecapi.cgi?sentence=' . $esc . '&response=surface,feature'); Encode::from_to($response, "utf8", "euc-jp" ); my @res = split(/<word>/, $response->content); foreach $i (@res){ $i = decode('utf8', $i); my @wc = ("名詞", "動詞", "形容詞", "助動詞", "助詞" , "接頭詞" , "接続詞" , "記号" ); my @fn = ("N" , "V" , "A" , "MV" , "JOSHI","SETTOUSHI", "SETSUZOKUSHI", "KIGOU"); for($j=0; $j<@wc; $j++){ if($i =~ /<surface>(.+)<\/surface><feature>$wc[$j]/){ $str = encode('utf8', $1);#utf8 my $filename = encode('euc-jp', $fn[$j]); open(OUT, ">>./dir/$filename.txt"); Encode::from_to($fn[$j], "utf8", "euc-jp" ); print $fn[$j].$str." "; $str = encode('euc-jp', $1); Encode::from_to($str." ", "utf8", "euc-jp" ); print OUT "$str\n"; close(OUT); last; } } } }

  • 3000円以下のVR体験装置ってどれがいい?

    アマゾンでVRと検索したらなんと3000円以下のVR体験 装置が出て来たんですが、3000円以下の製品でも 十分にVRを楽しめるんですか? あと見てるとヘッドホン付きと無しがあるみたいですが、 そもそもVR体験装置に付いてるヘッドホンの音質って どうなんでしょうか?(重低音の迫力や中音や高音の音質など) あと他にVR体験装置を選ぶ上でポイントや注意点などが ありましたらそれも教えて下さい。 https://www.amazon.co.jp/s/ref=nb_sb_noss_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=VR

専門家に質問してみよう