Perl

全6055件中61~80件表示
  • 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"; ******************

    • ベストアンサー
    • Perl
    • x001
    • 回答数6
  • Googleドライヴのスクリプト実行

    Googleドライヴの「承認が必要です」で困っています。 さて今回なのですが、Googleドライヴに関する件なのですが Googleドライヴにあるエクセルのシートなのですが(本当はgsheet) 月替わりに消し込みのスクリプトを実行しています、シートの上部の「ツール」から「スクリプトエディタ」で スクリプトの実行(▶)をクリックで実行していましたが、最近「承認が必要です」と出ます先々月まではアカウントのクリックで「詳細を表示」で「安全では無いページ」クリックで実行していたのですが最近テキストを入力画面が出て、何を入力したら良いのか分からずスクリプトが実行出来ません。 できれば「承認が必要です」を出なくする方法が知りたいです、難しい場合は、テキストを入力画面で何を入力すればスクリプトが実行されるか教えて下さい。 宜しくお願い致します。 ちなみにスクリプトは以下です。 function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Sheet01'); sheet.getRange('F5:F32').clearContent(); sheet.getRange('H5:H32').clearContent(); sheet.getRange('J5:J32').clearContent(); sheet.getRange('L5:L32').clearContent(); sheet.getRange('N5:N32').clearContent(); sheet.getRange('P5:P32').clearContent(); sheet.getRange('R5:R32').clearContent(); sheet.getRange('T5:T32').clearContent(); sheet.getRange('V5:V32').clearContent(); sheet.getRange('X5:X32').clearContent(); sheet.getRange('Z5:Z32').clearContent(); sheet.getRange('AB5:AB32').clearContent(); sheet.getRange('AD5:AD32').clearContent(); sheet.getRange('AF5:AF32').clearContent(); sheet.getRange('AH5:AH32').clearContent(); sheet.getRange('AJ5:AJ32').clearContent(); sheet.getRange('AL5:AL32').clearContent(); sheet.getRange('AN5:AN32').clearContent(); sheet.getRange('AP5:AP32').clearContent(); sheet.getRange('AR5:AR32').clearContent(); sheet.getRange('AT5:AT32').clearContent(); sheet.getRange('AV5:AV32').clearContent(); sheet.getRange('AX5:AX32').clearContent(); sheet.getRange('AZ5:AZ32').clearContent(); sheet.getRange('BB5:BB32').clearContent(); }

    • thinkre
    • 回答数1
  • Perl 日付処理 逆

    Perl 日付処理仕組み $Tm = "1488992820"; my ($Nsec, $Nmin, $Nhour, $Ndate, $Nmon, $Nyear, $Nday) = localtime($Tm); $Nyear += 1900; $Nmon += 1; print "$Nyear/$Nmon/$Ndate"; これで結果は 2017/3/9 となりますが、 逆に 2017 3 上記の年月で 逆に戻したいのですが、 どのようにするのでしょうか? 1488992820のよう細かい日付でなくていいのですが 2017年3月内のlocationTimeに戻したいのです。 説明が下手くそなので、 実際やりたいこと・・・ ログファイル1列目に 1488992820 のように、ログ時間があり、 それをまず 月間別に分け 上記ですと 2017年3月というアンカーを作り <a href="test.cgi?Y=2017&M=3">2017年3月</a> このような感じがページに並び、 これを選択すると ページでそれに該当する行だけ配列に入れ 表示させるということです。 ブログ記事にあるアーカイブ、月間別 を作りたいです ※ログファイルに、予め 2017,3 といったように、書き込むのはなしです。 これは最終手段・・・ 無理やりではありますが value="2017,3," my $a = 0; my @DATA = grep { $DATA[$_] =~ /,2017,3,/ } 0..$#DATA; $a = scalar @DATA ; 一応実行はできております。

  • Perl テキスト内の文字列 合計値

    ご教示お願い致します。 test.txt --------------- a,a,a c,b,b b,c,b a,a,d a,e,e --------------- ↑のようなテキストがあり それを 1列目[0] a = 3 b = 1 c = 1 d = 0 e = 0 2列目[1] a = 2 b = 1 c = 1 d = 0 e = 1 3列目[2] a = 1 b = 2 c = 0 d = 1 e = 1 このように求めたいのと、 全ての配列から a = 6 b = 4 c = 2 d = 1 e = 2 という風に求めたいのですが、どのようにするのでしょうか?

  • 配列の領域

    配列に2つの要素しか入っていません なぜマイナス領域にアクセスするんですか @hoge = ('aaa','bbb'); print "$#hoge\n"; print "$hoge[1] : $hoge[0] : $hoge[-1] 4 : $hoge[-2] : $hoge[-3]\n";

    • OK_WAVE
    • 回答数4
  • Perl,PHPのインストール方法

    Perl,PHPのインストール方法が解らなくなりました。 1度はできたと思ったのですが、解らなくなりました。 OSはUBUNTU17.04です。 いつも教わってばかりですみません。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • Perl JavaScript リアルタイム更新

    (1)サーバー側に置いてあるファイルの最終更新日時を取得 --> (2)へ 例)<--ここがPerlの処理? /test/log.txt --> 更新日時 2017/10/19 19:12 (2)-(1)ページに入った時間より新しければ、ページ更新 例)<--ここはJavaScriptの処理? /test/log.txt --> 更新日時 2017/10/19 20:25 (2)-(2)ファイルが更新されなければ、そのまま ユーザーA、ユーザーBが同時に掲示版を閲覧 ユーザーAが書込。 閲覧中のユーザーBのページがリアルタイムで更新 調べればWebSocketやSSLなどでてはくるのですが、 使えません・・・ ※私の技量・・・

  • PHP,Perlをインストールしたのですが・・・

    Ubuntu17.04にPHP,Perlをインストールしたのですが アイコンなどはあるのでしょうか? 初歩的にどうやって使うのでしょうか? ご多忙中誠に申し訳ありません。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • Perl メール内に画像やタグでの表示

    メールで、本文中に画像を表示させるにはどのようにするのでしょうか? 例えば、楽天なので買い物をしたときに 確認や、確定メールにて 画像が表示されており、 メールからソースをみると テーブルタグやイメージタグがあります。 通常通り、本文にタグを入力すると 文字でしか、表示できませんでした。 これは、どのような仕組みで、 どのようにすれば、メール内に画像やタグをいれ HTMLっぽく?表示されるのでしょうか?

    • ベストアンサー
    • Perl
  • デバック中に、今いるディレクトリを調べる方法

    Perlのデバック中に今いるディレクトリを知りたい場合、一旦プログラムを終了して今いるディレクトリを書き出すコードを追加する以外に方法は無いでしょうか。 それだとディレクトリが移動しそうな場所すべてにコードを追加しないといけないので、結構面倒だと思います。 一番教えて欲しいのはデバッカー内で常に今いるディレクトリを教えてくれる変数のような類です。それができない場合、デバックから抜けることなく今いるディレクトリを知るコマンドのような類は無いでしょうか。 デバッカーとしては、Perlに標準のものの他に、Active Perl のPDKも持っています。

    • makoji
    • 回答数4
  • Perl 速度について

    あるサイトの情報を取得するのに ソースを組んで、なんとかできたのですが、 時間がかかってる気がします。 ページ数 約300ページくらい読み込んでいて その中でも、 250ページほど、正規表現で、一部抜粋し、保存させているのですが、 ここが遅いです。 保存した容量は、 1個につき2kb~20kb 平均8kbほど 下記のような、ソースの箇所が明らかに遅い気がします。 my @words; while ($content =~ m#<td.*?>(.+?)</td>#gs) { my $word = $1; $word =~ s/<.+?>//g; $word =~ s/(\r|\n)+/\,/g; $word =~ s/,+//g; for( my $year=2010; $year<2017; $year++ ){ $word =~ s/$year\//\n$year\//g; } from_to($word,"euc-jp","utf8"); utf8::decode($word); push(@words, $word) if $word; } @Word = join(',', @words) . "\n"; print @Word; open(FILE, ">","$DATA[$i].txt") or die("error :$!"); flock(FILE, 2); print FILE @Word; close FILE; 内容が多いからでしょうか? だいたい10分近くかかっております。 パソコンもcore i3と古い Windows7を使用しています。 そんなものでしょうか? もしくは、速くする方法はありますか?

    • ベストアンサー
    • Perl
  • Perl 順位 複数のLoop

    合計の順位を求めたいのですが、 詰まってしまいました。 どうかご教示お願い致しますm(_ _)m まず下記のように Class1 1.txt の 3列目の合計 65.2 2.txt の 3列目の合計 80.5 3.txt の 3列目の合計 70 4.txt の 3列目の合計 92.6 5.txt の 3列目の合計 76.1 6.txt の 3列目の合計 85.2 このように6つのファイルがあり その3列目の合計は求めるとこまできました。 6つのファイルを元に順位をつけて HTMLのテーブル化を試みているのです。 for($Class=1;$Class<=5;$Class++){ open(F, "<","Class$Class.txt"); flock(F, 1); @CL = <F>; close F; for($KakuFile=1;$KakuFile<=$#CL;$KakuFile++;){ open(F, "<","KakuFile/$KakuFile.txt"); flock(F, 1); @DATA = <F>; close F; for($A=0;$A<=20;$A++;){ my $Data = $DATA[$A]; chomp($Data); my ($Name,$No,$Sum,...etc) = split(/,/, $Data); $SumDex = "Sumの合計を求める式"; #1.txt の場合 65.2 #2.txt の場合 80.5 #3.txt の場合 70 $RANK = "ここにどのような記述が入りますか?"; #1.txt の場合 6 #2.txt の場合 3 #3.txt の場合 5 #4.txt の場合 1 #5.txt の場合 4 #6.txt の場合 2 $HTML[$A] =" ~略 <td>$Name</td> <td>$SumDex</td> <td>$RANK</td> ~略 "; @HTML , $HTML[$A]; open(F, ">:utf8","RankHtml.txt") or die("error :$!"); flock(F, 2); print F "@HTML\n"; close F; } } } 最終的な結果としては、 <td>1.txtのName</td> <td>65.2</td> <td>6</td> <td>2.txtのName</td> <td>80.5</td> <td>3</td> <td>3.txtのName</td> <td>70</td> <td>5</td> <td>4.txtのName</td> <td>92.6</td> <td>1</td> <td>5.txtのName</td> <td>76.1</td> <td>4</td> <td>6.txtのName</td> <td>85.2</td> <td>2</td> このような結果がほしいです。 実際やりたいことはこのようなことなのですが、 どうすればいいのかわからず説明も、おかしなとこがあるかもしれません;; どうかお助け願いますm(_ _)m また、初心者で、Loopの使いかたがおかしかったり とかも指摘頂けると幸いです。

  • Perl MSSQLに接続してSQLのVer情報を

    すみません。素人です。 Perl MSSQLに接続してSQLのバージョン情報を取得したいです。 コードを実行すると下のようなエラーが発生します。 Can't use string ("1") as a HASH ref while "strict refs" in use at C:\testPerl\test.pl SQLServer Mangement Studioでクエリー(select @@VERSION)を実行すると下のような情報を取得できます。 ******** (列名なし) Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) Jul 9 2008 14:43:34 Copyright (c) 1988-2008 Microsoft Corporation Workgroup Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1) ********* どうも取得したデータ構造の指定がまずいように思いますが、どうすれば取得できますでしょうか? コード ------------------- use strict; use warnings; use Data::Dumper; use Win32::OLE; use Data::Dumper::Concise; use Win32::OLE::variant; use Win32::OLE::Const 'Microsoft ActiveX Data Objects 2.0 Library'; # DBサーバー名とDB名設定 my $server = "localhost"; my $db = ""; my $id = "sa"; my $ps = "testSa"; # エラー時に本処理を中止し、Perlがエラーメッセージを出力し、本プロセスが終了する。 Win32::OLE->Option(Warn => 3); # SQL Server 認証設定 my $connStr = "Provider=sqloledb;". "Data Source=$server;". "Initial Catalog=$db;". "User ID=$id;". "Password=$ps;"; # DB接続 my $objDB = Win32::OLE->new("ADODB.Connection"); $objDB->Open($connStr); $objDB->{Errors}->{Count} and die "cannot connect '$connStr'"; my $rs = Win32::OLE->new("ADODB.Recordset"); $rs->Open("select \@\@VERSION", $objDB); print "取りあえずなんか出力しようと試みる----------1\n"; print "$rs->{Fields}"."\n"; print "$rs->{Fields}->{Count}"."\n"; print "$rs->{Fields}->{Count}->{Item}->{1}"."\n"; while(!$rs->EOF ){ print "$rs->{Fields}->{Count}->{Value}"."$rs->{Fields}->{Item}->{Value}\n"; $rs->MoveNext(); } print "取りあえずなんか出力しようと試みる----------1\n"; ## DB切断 $objDB->Close();

    • x001
    • 回答数1
  • Perl ランク

    いつもお世話になっております。 ご教示お願い致します。 for ($i=0;$i<=10;$i++){ 処理 $Tensu } があります これを、 書き込み処理すると 80 60 70 40 50 20 20 100 30 90 となります。 目的としては 80,3 60,5 70,4 40,7 50,6 20,9 20,9 100,1 30,8 90,2 このときに 順位も付与させたいのですが、 どのようにするのでしょうか? ※順位は $Rankという変数に格納させたいです。

    • ベストアンサー
    • Perl
  • Perl 条件付最小値 率

    a.txt ↓ 1行目・・・ 2行目・・・ 以下3行目~ ,場所A,1:54.7,2, ,場所A,1:52.5,4, ,場所B,1:51.8,2, ,場所A,1:57.1,4, ,場所B,1:51.5,1, ,場所B,1:49.8,1, ・ ・ ・ 100ほど ※,場所,時間,順位, となっております text.pl ↓ open(FILE2, "<","a.txt"); flock(FILE3, 1); @DATA2 = <FILE2>; close FILE2; for ($i=3;$i<14;$i++){ $data2 = $DATA2[$i]; chomp($data2); my ($B01,$B02,$B03,$B04,$B05,$B06) = split(/,/, $data2); print "$B03\n"; } まず、ここまでできているのですが、 これで、各列を取得するとこまでできました。 ここから (1)この時間の中で 場所A or 場所B での最小値を求めたい (2)場所A or 場所B での順位が3以上の率を求めたい ※場所Aですと、場所Aが3つあり、3位以上が1、3位未満が2なので  1÷3×100の33.3%

    • ベストアンサー
    • Perl
  • Perl 単回帰分析

    テキストファイルで 「text.txt」 2012,,,10 2013,,,12 2014,,,15 2015,,,16 2016,,,8 このような内容で、 2017の5列目の単回帰分析を求めるには、 Perlでは、どのようにするのでしょうか? エクセルの関数では、12.2となりました。 説明が、わかりづらいかと思いますが、どうかよろしくお願いいたします。

  • Perl HTML::TagParser

    前回、御回答くださった方のおかげで ファイルから特定のタグ内の値を取得することができるようになったのですが、 問題が発生・・・ パソコンによって (1)使えるパソコン (2)使えないパソコン HTML::TagParserが使えない・・・ cpan で HTML::TagParserをインストールしようとすると (1)の場合すんなりインストールされ正常稼働しました。 (2)の場合、インストールするときに「dmake」が・・・ とエラーがでており、 (2)のパソコンでは、HTML::TagParserが使えない状態となっております。 これはなんぜでしょう? 「dmake」はどうやってインストールするのでしょう・・・? また同じ要領で、「dmake」をインストールしようとすると 今度は「-qdt」がない?というエラーがでております。 今回の質問(1) HTML::TagParserを使えるまでにしたい 質問(2) もしくは、 @A= $html->getElementsByClassName("able"); foreach ( @A) { $text2 = $_->innerText; $text2 =~ s/(\r|\n)+/\,/g; } モジュールをインストールせず、これと 同じ動きができる方法を教えてほしいです。

    • ベストアンサー
    • Perl
  • Perlテーブル要素の抜粋について

    はじめまして、 わからないことがあるので教えてください;; <table border="1">#1個目 <tr> <th>No</th> <td>1</td> </tr> <tr> <th>名前</th> <td>太郎</td> </tr> <tr> <th>ランク</th> <td>A</td> </tr> </table> <table border="1">#2個目 <tr> <th>住所</th> <td>東京都渋谷...</td> </tr> <tr> <th>電話番号</th> <td>000-0000-000</td> </tr> </table> <table border="1">#3個目 <tr> <th>試験日</th> <th>科目</th> <th>参考資料</th> <th>点数</th> <th>順位</th> </tr> <tr> <td>2015/6/25</td> <td>国語</td> <td><a href="kyouikunet.html"><img src="kokugo.gif" alt="kokugo"></a></td> <td>70</td> <td>12</td> </tr> <tr> <td>2015/8/25</td> <td>数学</td> <td><a href="kyouikunet.html"><img src="sugaku.gif" alt="sugaku"></a></td> <td>80</td> <td>5</td> </tr> <tr> <td>2015/10/25</td> <td>理科</td> <td><a href="kyouikunet.html"><img src="rika.gif" alt="rika"></a></td> <td>75</td> <td>8</td> </tr> <tr> <td>2015/12/25</td> <td>英語</td> <td><a href="kyouikunet.html"><img src="eigo.gif" alt="eigo"></a></td> <td>96</td> <td>2</td> </tr> </table> このような表があり、 $KojinSeisekiTroに入っており その中の テーブル1番目とテーブル3番目の情報の [tb]内の文字列をカンマ区切りで保存したいのですが どのようにするのかわからないです・・・ 例) この表ですと 1,太郎,A 2015/6/25,国語,70,12 2015/8/25,数学,80,5 2015/10/25,75,8 2015/12/25,96,2 . . . 以下、行の最終は不明なので、最後までという形 を、Tro.txtに保存したいです どうかご教示お願い致します;;

    • ベストアンサー
    • Perl
  • Perl HTMLソースから特定のタグ抽出

    use LWP::UserAgent; use HTTP::Request; use HTTP::Response; our $URL = 'https://www.yahoo.co.jp/'; # アクセスする URL my $proxy = new LWP::UserAgent; $proxy->agent('your own created browser name here'); # 任意 $proxy->timeout(60); # 任意 my $req = HTTP::Request->new('GET' => $URL); my $res = $proxy->request($req); my $content = $res->content; print "Content-Type: text/html\n\n"; # HTML ヘッダ (CGI として動作できる) if($res->is_success) { print $content; } else { print 'HTTP エラーコード: ' . $res->code; } これで、HTMLソース全てを取得することはできましたが、 例えば、このソースはヤフーのコードを取得していますが、 ヤフーのコード内で<li></li> リストタグないの文字列がほしいのですが、 どのように抽出すればいいのでしょうか? ヤフーでは、下記のようになっていて <li><a hrf="???????????????">ここの文字列<span>写真</span><span>new</span></li> このソースからここの文字列を抽出させたいです。 さらに、1番目の<li>内、4番目の<li>内といったことも実行したいです。 どうかご教示お願い致します。

  • perl require

    恐れいります。 yyy.cgiというファイルの中に、 require './xxx.cgi'; を記入し、読み込みはできているのですが、 xxx.cgiを実行してyyy.cgiのそれ以降のプログラムが実行されません。 yyy.cgiの、中でxxx.cgiを実行してストップしてしまいます。 解決策をご存知の方いらっしゃいましたら宜しくお願いします。

    • ベストアンサー
    • Perl