perlでWikipediaの内閣総理大臣の一覧をスクレイピングする方法
Nid: 682
Web::Scraper に付属の scraperコマンドでスクレイピング。
ページ情報取得
$ scraper 'https://ja.wikipedia.org/wiki/%E5%86%85%E9%96%A3%E7%B7%8F%E7%90%86%E5%A4%A7%E8%87%A3%E3%81%AE%E4%B8%80%E8%A6%A7'
スクレイピング
scraper> process '/html/body/div[3]/div[3]/div[4]/table[4]/tr',WARN;
scraper> process '/html/body/div[3]/div[3]/div[4]/table[4]/tr', 'list[]'=> scraper { process '//th', 'id'=> 'TEXT'; process '//td[4]/b/a', 'title'=> 'TEXT'; process '//td[4]/small', 'kana'=> 'TEXT'; process '//td[5]/a', 'naikaku[]'=> 'TEXT'; process '//td[6]', 'period[]'=> 'TEXT' };
結果出力
scraper> y Wide character in warn at /usr/local/bin/scraper line 67. --- list: - id: 代 - id: 明治 - id: 1 kana: いとう ひろぶみ naikaku: - 第1次伊藤内閣 period: - '1885年12月22日 - 1888年4月30日 (861日)' title: 伊藤博文 - id: 2 kana: くろだ きよたか naikaku: - 黒田内閣 period: - '1888年4月30日 - 1889年10月25日 (544日)' title: 黒田清隆 - id: '-' kana: (さんじょう さねとみ) naikaku: - 三條暫定内閣 period: - '(1889年10月25日 - 1889年12月24日)' - id: 3 kana: やまがた ありとも naikaku: - 第1次山縣内閣 period: - '1889年12月24日 - 1891年5月6日 (499日)' title: 山縣有朋 - id: 大日本帝国憲法下 - id: 4 kana: まつかた まさよし naikaku: - 第1次松方内閣 period: - '1891年5月6日 - 1892年8月8日 (461日)' title: 松方正義 - id: 5 kana: いとう ひろぶみ naikaku: - 第2次伊藤内閣 period: - '1892年8月8日 - 1896年8月31日 (1485日)' - id: '-' kana: (くろだ きよたか) period: - '(1896年8月31日 - 1896年9月18日)' - id: 6 kana: まつかた まさよし naikaku: - 第2次松方内閣 period: - '1896年9月18日 - 1898年1月12日 (482日) (通算943日)' - id: 7 kana: いとう ひろぶみ naikaku: - 第3次伊藤内閣 period: - '1898年1月12日 - 1898年6月30日 (170日)' - id: 8 kana: おおくま しげのぶ naikaku: - 第1次大隈内閣 period: - '1898年6月30日 - 1898年11月8日 (132日)' title: 大隈重信 - id: 9 kana: やまがた ありとも naikaku: - 第2次山縣内閣 period: - '1898年11月8日 - 1900年10月19日 (711日) (通算1210日)' - id: 10 kana: いとう ひろぶみ naikaku: - 第4次伊藤内閣 period: - '1900年10月19日 - 1901年5月10日 (204日) (通算2720日)' - id: '-' kana: (さいおんじ きんもち) period: - '(1901年5月10日 - 1901年6月2日)' - id: 11 kana: かつら たろう naikaku: - 第1次桂内閣 period: - '1901年6月2日 - 1906年1月7日 (1681日)' title: 桂太郎 - id: 12 kana: さいおんじ きんもち naikaku: - 第1次西園寺内閣 period: - '1906年1月7日 - 1908年7月14日 (920日)' title: 西園寺公望 - id: 13 kana: かつら たろう naikaku: - 第2次桂内閣 period: - '1908年7月14日 - 1911年8月30日 (1143日)' - id: 14 kana: さいおんじ きんもち naikaku: - 第2次西園寺内閣 period: - '1911年8月30日 - 1912年12月21日 (480日) (通算1400日)' - id: 大正 - id: 15 kana: かつら たろう naikaku: - 第3次桂内閣 period: - '1912年12月21日 - 1913年2月20日 (62日) (通算2886日)' - id: 16 kana: やまもと ごんべえ naikaku: - 第1次山本内閣 period: - '1913年2月20日 - 1914年4月16日 (421日)' title: 山本権兵衛 - id: 17 kana: おおくま しげのぶ naikaku: - 第2次大隈内閣 period: - '1914年4月16日 - 1916年10月9日 (908日) (通算1040日)' - id: 18 kana: てらうち まさたけ naikaku: - 寺内内閣 period: - '1916年10月9日 - 1918年9月29日 (721日)' title: 寺内正毅 - id: 19 kana: はら たかし naikaku: - 原内閣 period: - '1918年9月29日 - 1921年11月4日 (1133日)' title: 原敬 - id: '-' kana: (うちだ こうさい) period: - '(1921年11月4日 - 1921年11月13日)' - id: 20 kana: たかはし これきよ naikaku: - 高橋内閣 period: - '1921年11月13日 - 1922年6月12日 (212日)' title: 高橋是清 - id: 21 kana: かとう ともさぶろう naikaku: - 加藤友三郎内閣 period: - '1922年6月12日 - 1923年8月24日 (439日)' title: 加藤友三郎 - id: '-' kana: (うちだ こうさい) period: - '(1923年8月24日 - 1923年9月2日)' - id: 22 kana: やまもと ごんべえ naikaku: - 第2次山本内閣 period: - '1923年9月2日 - 1924年1月7日 (128日) (通算549日)' - id: 23 kana: きようら けいご naikaku: - 清浦内閣 period: - '1924年1月7日 - 1924年6月11日 (157日)' title: 清浦奎吾 - id: 24 kana: かとう たかあき naikaku: - 加藤高明内閣 period: - '1924年6月11日 - 1926年1月28日 (597日)' title: 加藤高明 - id: '-' kana: (わかつき れいじろう) period: - '(1926年1月28日 - 1926年1月30日)' - id: 25 kana: わかつき れいじろう naikaku: - 第1次若槻内閣 period: - '1926年1月30日 - 1927年4月20日 (446日)' title: 若槻禮次郎 - id: 昭和 - id: 26 kana: たなか ぎいち naikaku: - 田中義一内閣 period: - '1927年4月20日 - 1929年7月2日 (805日)' title: 田中義一 - id: 27 kana: はまぐち おさち naikaku: - 濱口内閣 period: - '1929年7月2日 - 1931年4月14日 (652日)' title: 濱口雄幸 - id: 28 kana: わかつき れいじろう naikaku: - 第2次若槻内閣 period: - '1931年4月14日 - 1931年12月13日 (244日) (通算690日)' - id: 29 kana: いぬかい つよし naikaku: - 犬養内閣 period: - '1931年12月13日 - 1932年5月16日[注釈 2] (156日)' title: 犬養毅 - id: '-' kana: (たかはし これきよ) period: - '(1932年5月16日 - 1932年5月26日)' - id: 30 kana: さいとう まこと naikaku: - 齋藤内閣 period: - '1932年5月26日 - 1934年7月8日 (774日)' title: 斎藤実 - id: 31 kana: おかだ けいすけ naikaku: - 岡田内閣 period: - '1934年7月8日 - 1936年3月9日 (611日)' title: 岡田啓介 - id: 32 kana: ひろた こうき naikaku: - 廣田内閣 period: - '1936年3月9日 - 1937年2月2日 (331日)' title: 広田弘毅 - id: 33 kana: はやし せんじゅうろう naikaku: - 林内閣 period: - '1937年2月2日 - 1937年6月4日 (123日)' title: 林銑十郎 - id: 34 kana: このえ ふみまろ naikaku: - 第1次近衛内閣 period: - '1937年6月4日 - 1939年1月5日 (581日)' title: 近衛文麿 - id: 35 kana: ひらぬま きいちろう naikaku: - 平沼内閣 period: - '1939年1月5日 - 1939年8月30日 (238日)' title: 平沼騏一郎 - id: 36 kana: あべ のぶゆき naikaku: - 阿部内閣 period: - '1939年8月30日 - 1940年1月16日 (140日)' title: 阿部信行 - id: 37 kana: よない みつまさ naikaku: - 米内内閣 period: - '1940年1月16日 - 1940年7月22日 (189日)' title: 米内光政 - id: 38 kana: このえ ふみまろ naikaku: - 第2次近衛内閣 period: - '1940年7月22日 - 1941年7月18日 (362日)' - id: 39 - id: 40 kana: とうじょう ひでき naikaku: - 東條内閣 period: - '1941年10月18日 - 1944年7月22日 (1009日)' title: 東條英機 - id: 41 kana: こいそ くにあき naikaku: - 小磯内閣 period: - '1944年7月22日 - 1945年4月7日 (260日)' title: 小磯國昭 - id: 42 kana: すずき かんたろう naikaku: - 鈴木貫太郎内閣 period: - '1945年4月7日 - 1945年8月17日 (133日)' title: 鈴木貫太郎 - id: 43 kana: ひがしくにのみや なるひこおう naikaku: - 東久邇宮内閣 period: - '1945年8月17日 - 1945年10月9日 (54日)' title: 東久邇宮稔彦王 - id: 44 kana: しではら きじゅうろう naikaku: - 幣原内閣 period: - '1945年10月9日 - 1946年5月22日 (226日)' title: 幣原喜重郎 - id: 45 kana: よしだ しげる naikaku: - 第1次吉田内閣 period: - '1946年5月22日 - 1947年5月24日 (368日)' title: 吉田茂 - id: 日本国憲法下 - id: 46 kana: かたやま てつ naikaku: - 片山内閣 period: - '1947年5月24日 - 1948年3月10日 (292日)' title: 片山哲 - id: 47 kana: あしだ ひとし naikaku: - 芦田内閣 period: - '1948年3月10日 - 1948年10月15日 (220日)' title: 芦田均 - id: 48 kana: よしだ しげる naikaku: - 第2次吉田内閣 period: - '1948年10月15日 - 1949年2月16日 (125日)' - id: 49 - id: 50 - id: 51 - id: 52 kana: はとやま いちろう naikaku: - 第1次鳩山一郎内閣 period: - '1954年12月10日 - 1955年3月19日 (100日)' title: 鳩山一郎 - id: 53 - id: 54 - id: 55 kana: いしばし たんざん naikaku: - 石橋内閣 period: - '1956年12月23日 - 1957年2月25日 (65日)' title: 石橋湛山 - id: 56 kana: きし のぶすけ naikaku: - 第1次岸内閣 - 改造内閣 period: - '1957年2月25日 - 1958年6月12日 (473日)' title: 岸信介 - id: 57 - id: 58 kana: いけだ はやと naikaku: - 第1次池田内閣 period: - '1960年7月19日 - 1960年12月8日 (143日)' title: 池田勇人 - id: 59 - id: 60 - id: 61 kana: さとう えいさく naikaku: - 第1次佐藤内閣 - 第1次改造内閣 - 第2次改造内閣 - 第3次改造内閣 period: - '1964年11月9日 - 1967年2月17日 (831日)' title: 佐藤栄作 - id: 62 - id: 63 - id: 64 kana: たなか かくえい naikaku: - 第1次田中角栄内閣 period: - '1972年7月7日 - 1972年12月22日 (169日)' title: 田中角栄 - id: 65 - id: 66 kana: みき たけお naikaku: - 三木内閣 - 改造内閣 period: - '1974年12月9日 - 1976年12月24日 (747日)' title: 三木武夫 - id: 67 kana: ふくだ たけお naikaku: - 福田赳夫内閣 - 改造内閣 period: - '1976年12月24日 - 1978年12月7日 (714日)' title: 福田赳夫 - id: 68 kana: おおひら まさよし naikaku: - 第1次大平内閣 period: - '1978年12月7日 - 1979年11月9日 (338日)' title: 大平正芳 - id: 69 - id: '-' kana: (いとう まさよし) period: - '(1980年6月12日 - 1980年7月17日)' - id: 70 kana: すずき ぜんこう naikaku: - 鈴木善幸内閣 - 改造内閣 period: - '1980年7月17日 - 1982年11月27日 (864日)' title: 鈴木善幸 - id: 71 kana: なかそね やすひろ naikaku: - 第1次中曽根内閣 period: - '1982年11月27日 - 1983年12月27日 (396日)' title: 中曽根康弘 - id: 72 - id: 73 - id: 74 kana: たけした のぼる naikaku: - 竹下内閣 - 改造内閣 period: - '1987年11月6日 - 1989年6月3日 (576日)' title: 竹下登 - id: 平成 - id: 75 kana: うの そうすけ naikaku: - 宇野内閣 period: - '1989年6月3日 - 1989年8月10日 (69日)' title: 宇野宗佑 - id: 76 kana: かいふ としき naikaku: - 第1次海部内閣 period: - '1989年8月10日 - 1990年2月28日 (203日)' title: 海部俊樹 - id: 77 - id: 78 kana: みやざわ きいち naikaku: - 宮澤内閣 - 改造内閣 period: - '1991年11月5日 - 1993年8月9日 (644日)' title: 宮澤喜一 - id: 79 kana: ほそかわ もりひろ naikaku: - 細川内閣 period: - '1993年8月9日 - 1994年4月28日 (263日)' title: 細川護熙 - id: 80 kana: はた つとむ naikaku: - 羽田内閣 period: - '1994年4月28日 - 1994年6月30日 (64日)' title: 羽田孜 - id: 81 kana: むらやま とみいち naikaku: - 村山内閣 - 改造内閣 period: - '1994年6月30日 - 1996年1月11日 (561日)' title: 村山富市 - id: 82 kana: はしもと りゅうたろう naikaku: - 第1次橋本内閣 period: - '1996年1月11日 - 1996年11月7日 (302日)' title: 橋本龍太郎 - id: 83 - id: 84 kana: おぶち けいぞう naikaku: - 小渕内閣 - 第1次改造内閣 - 第2次改造内閣 period: - '1998年7月30日 - 2000年4月5日 (616日)' title: 小渕恵三 - id: 85 kana: もり よしろう naikaku: - 第1次森内閣 period: - '2000年4月5日 - 2000年7月4日 (91日)' title: 森喜朗 - id: 86 - id: 87 kana: こいずみ じゅんいちろう naikaku: - 第1次小泉内閣 - 第1次改造内閣 - 第2次改造内閣 period: - '2001年4月26日 - 2003年11月19日 (938日)' title: 小泉純一郎 - id: 88 - id: 89 - id: 90 kana: あべ しんぞう naikaku: - 第1次安倍内閣 - 改造内閣 period: - '2006年9月26日 - 2007年9月26日 (366日)' title: 安倍晋三 - id: 91 kana: ふくだ やすお naikaku: - 福田康夫内閣 - 改造内閣 period: - '2007年9月26日 - 2008年9月24日 (365日)' title: 福田康夫 - id: 92 kana: あそう たろう naikaku: - 麻生内閣 period: - '2008年9月24日 - 2009年9月16日 (358日)' title: 麻生太郎 - id: 93 kana: はとやま ゆきお naikaku: - 鳩山由紀夫内閣 period: - '2009年9月16日 - 2010年6月8日 (266日)' title: 鳩山由紀夫 - id: 94 kana: かん なおと naikaku: - 菅内閣 - 第1次改造内閣 - 第2次改造内閣 period: - '2010年6月8日 - 2011年9月2日 (452日)' title: 菅直人 - id: 95 kana: のだ よしひこ naikaku: - 野田内閣 - 第1次改造内閣 - 第2次改造内閣 - 第3次改造内閣 period: - '2011年9月2日 - 2012年12月26日 (482日)' title: 野田佳彦 - id: 96 kana: あべ しんぞう naikaku: - 第2次安倍内閣 - 改造内閣 period: - '2012年12月26日 - 2014年12月24日 (729日)' - id: 97
perlコード出力
scraper> c #!/usr/bin/perl use strict; use Web::Scraper; use URI; my $uri = URI->new("https://ja.wikipedia.org/wiki/%E5%86%85%E9%96%A3%E7%B7%8F%E7%90%86%E5%A4%A7%E8%87%A3%E3%81%AE%E4%B8%80%E8%A6%A7"); my $scraper = scraper { process '/html/body/div[3]/div[3]/div[4]/table[4]/tr', 'list[]'=> scraper { process '//th', 'id'=> 'TEXT'; process '//td[4]/b/a', 'title'=> 'TEXT'; process '//td[4]/small', 'kana'=> 'TEXT'; process '//td[5]/a', 'naikaku[]'=> 'TEXT'; process '//td[6]', 'period[]'=> 'TEXT' }; }; my $result = $scraper->scrape($uri);