[過去ログ]
Perlについての質問箱 64箱目 (1002レス)
Perlについての質問箱 64箱目 http://mevius.5ch.net/test/read.cgi/tech/1548981877/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
620: デフォルトの名無しさん [sage] 2020/08/02(日) 18:54:17.87 ID:4gDW5awL 効いたな http://mevius.5ch.net/test/read.cgi/tech/1548981877/620
621: デフォルトの名無しさん [sage] 2020/08/02(日) 19:26:37.18 ID:TAOBMMvc >>614 数万人の天才が挑戦しているがいまだに達成していない http://mevius.5ch.net/test/read.cgi/tech/1548981877/621
622: デフォルトの名無しさん [sage] 2020/08/02(日) 19:41:56.53 ID:hIQzyyzC >>621 むしろ天才よりも秀才のほうやろ。 本当の天才はそういうことに関わらん気がする。 直感的に不可能か、現実的に意味がないかを悟っていそうというか。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/622
623: デフォルトの名無しさん [sage] 2020/08/02(日) 20:29:18.39 ID:Vanmrtqf バグの無いことの証明が不可能なのは、 ゲーデルの不完全性定理とかあのへんまで突っ込んでいくからであって、 99.9%okなら良しとする現実世界なら普通に可能 http://mevius.5ch.net/test/read.cgi/tech/1548981877/623
624: デフォルトの名無しさん [sage] 2020/08/03(月) 23:11:06.80 ID:/fZxIKnK >>623 そしてその0.1%が理由になって戦争になるわけですね http://mevius.5ch.net/test/read.cgi/tech/1548981877/624
625: デフォルトの名無しさん [sage] 2020/08/09(日) 01:00:36.25 ID:JDEJdFnx 過疎ってると落ち着く http://mevius.5ch.net/test/read.cgi/tech/1548981877/625
626: デフォルトの名無しさん [sage] 2020/08/13(木) 15:32:24.87 ID:g8OxF1lY UTF8からShift-JISに変換し、その中で変換できなかった文字列はhtml数値文字参照に変換したいです (UTF8)楽しいね🙂→(Shift-JIS)楽しいね🙂 ; このような風にです こちらのサイトを参考にして↓のように書いてみたのですが https://blog.netandfield.com/shar/i/details/004482.html#home use Encode; my $word = "楽しいね🙂"; Encode::from_to( $word, "UTF8", "Shift_JIS", Encode::FB_HTMLCREF); print "$word"; (結果) ?y??????🙂 ; と、元の日本語が文字化けしてしまいます どこを直せばいいでしょうか? Perlのバージョンは5.18.2 Encodeモジュールのバージョンは2.49です http://mevius.5ch.net/test/read.cgi/tech/1548981877/626
627: デフォルトの名無しさん [sage] 2020/08/13(木) 16:19:08.99 ID:HLH3bdVq その出力先(ターミナル?コンソール?)は、そもそもシフトJISテキストを表示できるのか? できない場合は、プログラムは関係なく、ターミナルが文字化けする。 ためしにtext.htmlのようなファイルに出力してから、その内容を確認したら? http://mevius.5ch.net/test/read.cgi/tech/1548981877/627
628: デフォルトの名無しさん [sage] 2020/08/13(木) 16:44:17.95 ID:DQVPr3Tq 前にやろうとして諦めた pythonだと簡単 try: str_sjis = str.encode("CP932") except UnicodeEncodeError: print str.encode("utf-8") http://mevius.5ch.net/test/read.cgi/tech/1548981877/628
629: デフォルトの名無しさん [sage] 2020/08/13(木) 16:48:34.24 ID:/BJ4BGZD >>628 そのレベルならPerlでも簡単 絵文字だけ抜き出してHTML特殊文字化 でしょ http://mevius.5ch.net/test/read.cgi/tech/1548981877/629
630: デフォルトの名無しさん [sage] 2020/08/13(木) 17:00:11.25 ID:g8OxF1lY >>627 ターミナルです ファイルに出力してそれをShift-JISとして開いたら文字化けもなく見ることができました 内部的には問題なかったのですね ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1548981877/630
631: デフォルトの名無しさん [sage] 2020/08/13(木) 22:25:11.59 ID:L5UfXSE8 >>628 笑わすんじゃねーw http://mevius.5ch.net/test/read.cgi/tech/1548981877/631
632: デフォルトの名無しさん [sage] 2020/08/15(土) 08:35:13.06 ID:ACgG3ouC プロトタイプ属性の指定がどうやってもできん use feature 'signatures'; sub foo :prototype($$) ($left, $right) { return $left + $right; } これで構文エラーになる理由が全く分からん http://mevius.5ch.net/test/read.cgi/tech/1548981877/632
633: デフォルトの名無しさん [sage] 2020/08/15(土) 10:52:43.99 ID:N6F3nDZU 釣れますか? http://mevius.5ch.net/test/read.cgi/tech/1548981877/633
634: デフォルトの名無しさん [sage] 2020/08/15(土) 12:09:58.58 ID:ybTBju6n 同時には使えんやろ http://mevius.5ch.net/test/read.cgi/tech/1548981877/634
635: デフォルトの名無しさん [sage] 2020/08/15(土) 14:02:00.78 ID:ACgG3ouC え???? use feature 'signatures'; sub NAME(SIG) BLOCK # with signature sub NAME :ATTRS (SIG) BLOCK # with signature, attributes sub NAME :prototype(PROTO) (SIG) BLOCK # with signature, prototype 構文こうなってるけど? http://mevius.5ch.net/test/read.cgi/tech/1548981877/635
636: デフォルトの名無しさん [] 2020/08/15(土) 15:48:07.40 ID:k2IZqmRY 以下のようなhtmlがあるとします <div> <p>AAA</p><p>BBB</p><p>CCC</p><p>DDD</p> </div> <p></p>の構文が4個の場合は、構文を文字列として2個ずつ別の変数に分けたいです。 ($str1 に"<p>AAA</p><p>BBB</p>" 、 $str2に"<p>CCC</p><p>DDD</p>" <p></p>の構文が6個の場合は3個ずつ、8個の場合は4個ずつ・・・と前半と後半で分けて 2つの変数に代入したいのですが、方法はあるでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1548981877/636
637: デフォルトの名無しさん [sage] 2020/08/15(土) 16:19:42.08 ID:V1MJgzDn そら一発では無理だろう 一旦配列に入れてから真ん中で分ける http://mevius.5ch.net/test/read.cgi/tech/1548981877/637
638: デフォルトの名無しさん [] 2020/08/15(土) 16:34:06.12 ID:o+i8zw5r 釣りに引っ掛かるな http://mevius.5ch.net/test/read.cgi/tech/1548981877/638
639: デフォルトの名無しさん [] 2020/08/15(土) 17:04:09.01 ID:gFfdk9Ij >>636 はい。あります。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/639
640: デフォルトの名無しさん [sage] 2020/08/15(土) 19:50:33.78 ID:dQrORRCv ちょろい問題。単なる初心者で釣りなんかじゃないでしょう。 @foo = (); @bar = (); while ($str =~ s{^[\s\S]*?<p>(.+?)</p>(.*)<p>(.+?)</p>[\s\S]*$}{$2}){ push @foo, $1; unshift @bar, $3; } http://mevius.5ch.net/test/read.cgi/tech/1548981877/640
641: デフォルトの名無しさん [sage] 2020/08/15(土) 19:55:02.56 ID:dQrORRCv 2行目間違えてた。 while ($str =~ s{^[\s\S]*?<p>(.+?)</p>(.*)<p>(.+?)</p>[\s\S]*?$}{$2}){ http://mevius.5ch.net/test/read.cgi/tech/1548981877/641
642: デフォルトの名無しさん [sage] 2020/08/15(土) 20:01:49.33 ID:UM/CpThf # 元ネタ my $html = '<html><p>hoge1</p><p>hoge2</p><p>hoge3</p><p>hoge4</p><p>hoge5</p><p>hoge6</p><p>hoge7</p><p>hoge8</p><p>hoge9</p><p>hoge10</p></html>'; # 全部のpタグの中身を引っ掛ける my @p_list = $html =~ /<p>(.+?)<\/p?/g; # 引っかかった数取得 my $size = int(@p_list); # 前半と後半に分けて突っ込む my @mae = @p_list[0..int($size/2)-1]; my @ato = @p_list[int($size/2)..$size-1]; # 結果表示テスト print Dumper([\@mae, \@ato]); http://mevius.5ch.net/test/read.cgi/tech/1548981877/642
643: デフォルトの名無しさん [sage] 2020/08/15(土) 20:03:08.33 ID:UM/CpThf なんだこの糞改行(´・ω・`) # 全部のpタグの中身を引っ掛ける my @p_list = $html =~ /<p>(.+?)<\/p>/g; # 引っかかった数取得 my $size = int(@p_list); # 前半と後半に分けて突っ込む my @mae = @p_list[0..int($size/2)-1]; my @ato = @p_list[int($size/2)..$size-1]; # 結果表示テスト print Dumper([\@mae, \@ato]); http://mevius.5ch.net/test/read.cgi/tech/1548981877/643
644: デフォルトの名無しさん [sage] 2020/08/15(土) 20:11:32.28 ID:UM/CpThf 俺のは巨大なHTMLだとメモリが死ぬ 安全策なら>>640 http://mevius.5ch.net/test/read.cgi/tech/1548981877/644
645: デフォルトの名無しさん [sage] 2020/08/15(土) 20:49:31.50 ID:ODJGcA2C >>644 まあ、そんなに巨大だったら、どっちにしろ死ぬやろけどな。w 本気で心配するならチビチビつままないと。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/645
646: デフォルトの名無しさん [sage] 2020/08/16(日) 03:38:06.22 ID:Degs0Zl8 Ruby の、Nokogiri で、スクレイピングしてみた require 'nokogiri' doc = Nokogiri::HTML(<<EOT) <div> <p>AAA</p><p>BBB</p><p>CCC</p><p>DDD</p> </div> EOT p_tags = doc.css( "div > p" ) # div の直下のp half_cnt = p_tags.length / 2 def make_p_str( ary ) # 要素の配列から、文字列を作る str = "" ary.each do |elem| tmp = elem.to_html # 要素 tmp.chomp! # 末尾の改行を削除する str += tmp # 連結 end str end p str_before = make_p_str( p_tags[ 0...half_cnt ] ) # 前半 p str_after = make_p_str( p_tags[ half_cnt..-1 ] ) # 後半 出力 "<p>AAA</p><p>BBB</p>" "<p>CCC</p><p>DDD</p>" http://mevius.5ch.net/test/read.cgi/tech/1548981877/646
647: デフォルトの名無しさん [sage] 2020/08/16(日) 06:28:33.83 ID:Rc5RuLFB Mechanizeでやれる? http://mevius.5ch.net/test/read.cgi/tech/1548981877/647
648: 646 [sage] 2020/08/16(日) 07:20:54.63 ID:Degs0Zl8 Mechanize とか、curl + Nokogiri でも、静的なページなら、DOM を取得できるけど、 Ajax など、JavaScript で、動的にDOMを組み立てている場合は、 sleep するとか、Selenium WebDriver などを使わないと、DOMを取得できない 5ch などは、空のHTMLを送ってきてから、 Ajax で、ページの内容を取得しているから、 HTMLをスクレイピングするだけでは、タイミングによっては内容が存在しない http://mevius.5ch.net/test/read.cgi/tech/1548981877/648
649: 646 [sage] 2020/08/16(日) 07:27:51.64 ID:Degs0Zl8 Ruby で、curl, Nokogiri の例 require 'nokogiri' html = `curl http://www.example.com/` doc = Nokogiri::HTML( html ) elements = doc.css( "h1" ) puts elements.first.content #=> Example Domain open-uri の例 require 'open-uri' require 'nokogiri' url = 'http://www.example.com/' doc = Nokogiri::HTML(open(url)) http://mevius.5ch.net/test/read.cgi/tech/1548981877/649
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 353 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s