LoginSignup
0

「wikipediaからのページからリンク一覧を取得する方法」を動かしてみた

Last updated at Posted at 2019-05-01

wikipediaからのページからリンク一覧を取得する方法
https://qiita.com/tadaken3/items/e09ba2ede988bbacb303

をうごかしてみた。

<この項は書きかけです。順次追記します。>

Windows/anaconda3

Windows(MS)にPython(Anaconda)を導入する(6つの罠)
https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679
で導入したanaconda3

wi.pyという名前で保存した。

プログラム上のURLは
https://ja.wikipedia.org/wiki/テイルズ_オブ_イノセンス

>python wi.py
/wiki/コンピュータRPG
/wiki/ニンテンドーDS
/wiki/PlayStation_Vita
/wiki/アルファ・システム
/wiki/バンダイナムコゲームス
/wiki/馬場英雄
/wiki/大舘隆司
/wiki/いのまたむつみ
/wiki/2007年
/wiki/12月6日
/wiki/2008年
/wiki/10月30日
/wiki/2012年
/wiki/1月26日
/wiki/2013年
/wiki/4月25日
/wiki/コンピュータエンターテインメントレーティング機構
/wiki/CEROレーティング12才以上対象ソフトの一覧
/wiki/バンダイナムコゲームス
/wiki/海童博行
/wiki/集英社
/wiki/ジャンプスクエア
/wiki/2008年
/wiki/バンダイナムコゲームス
/wiki/2007年
/wiki/12月6日
/wiki/ニンテンドーDS
/wiki/コンピュータRPG
/wiki/テイルズ_オブ_シリーズ
/wiki/PlayStation_Vita
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_デスティニー
/wiki/著作権侵害
/wiki/テイルズ_オブ_シリーズ#システム面での特色
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_デスティニー
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_シンフォニア
/wiki/不思議のダンジョン
/wiki/ローグライクゲーム
/wiki/プランテーション
/wiki/声優
/wiki/木村亜希子
/wiki/サエキトモ
/wiki/医者
/wiki/エスペラント語
/wiki/小山力也
/wiki/笹本優子
/wiki/二丁拳銃
/wiki/.45ロング・コルト弾
/wiki/うえだゆうじ
/wiki/イタリア語
/wiki/名塚佳織
/wiki/フランス語
/wiki/スペイン語
/wiki/男性
/wiki/平田広明
/wiki/傭兵
/wiki/銃剣
/wiki/狙撃手
/wiki/松岡由貴
/wiki/孤児
/wiki/ストリートチルドレン
/wiki/関西弁
/wiki/神戸市
/wiki/野島健児_(声優)
/wiki/藤田咲
/wiki/小桜エツコ
/wiki/島田敏
/wiki/真殿光昭
/wiki/ラテン語
/wiki/若本規夫
/wiki/田中敦子_(声優)
/wiki/宍戸留美
/wiki/着物
/wiki/沢城みゆき
/wiki/戦災孤児
/wiki/番犬
/wiki/あだ名
/wiki/ケルベロス
/wiki/狛犬
/wiki/杉田智和
/wiki/福原耕平
/wiki/斉藤貴美子
/wiki/大場真人
/wiki/大本眞基子
/wiki/青野武
/wiki/掛川裕彦
/wiki/アルファ・システム
/wiki/大舘隆司
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/いのまたむつみ
/wiki/木村亜希子
/wiki/KOKIA
/wiki/Follow_the_Nightingale
/wiki/Follow_the_Nightingale
/wiki/桜庭統
/wiki/テイルズ_オブ_シンフォニア_-ラタトスクの騎士-
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_エターニア
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_リバース
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_ザ_テンペスト
/wiki/リブート_(作品展開)
/wiki/KOKIA
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/テイルズ_オブ_ハーツ
/wiki/海童博行
/wiki/ジャンプスクエア
/wiki/テイルズ_オブ_マガジン
/wiki/トマト
/wiki/パスタ
/wiki/一迅社
/wiki/アンソロジーコミック
/wiki/金月龍之介
/wiki/松竹徳幸
/wiki/スーパーダッシュ文庫
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー2
/wiki/テイルズ_オブ_バーサス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/ケロロRPG_騎士と武者と伝説の海賊
/wiki/ケロロ軍曹
/wiki/タママ
/wiki/小桜エツコ
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ザ_ヒーローズ_ツインブレイヴ
/wiki/テイルズ_オブ_ザ_ワールド_タクティクス_ユニオン
/wiki/テイルズ_オブ_エクシリア2
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_ザ_レイズ
/wiki/エンターブレイン
/wiki/コンピュータゲーム
/wiki/テイルズ_オブ_シリーズ
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_デスティニー
/wiki/テイルズ_オブ_デスティニーの登場キャラクター
/wiki/テイルズ_オブ_エターニア
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_シンフォニア_ユニゾナントパック
/wiki/テイルズ_オブ_リバース
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_グレイセス
/wiki/テイルズ_オブ_エクシリア
/wiki/テイルズ_オブ_エクシリア2
/wiki/テイルズ_オブ_ゼスティリア
/wiki/テイルズ_オブ_ベルセリア
/wiki/テイルズ_オブ_ザ_テンペスト
/wiki/テイルズ_オブ_ファンタジア_なりきりダンジョン
/wiki/テイルズ_オブ_ファンタジア_なりきりダンジョンX
/wiki/テイルズ_オブ_ザ_ワールド_〜サモナーズ_リネージ〜
/wiki/テイルズ_オブ_エターニア_オンライン
/wiki/テイルズ_オブ_シンフォニア_-ラタトスクの騎士-
/wiki/テイルズ_オブ_ザ_ワールド_なりきりダンジョン2
/wiki/テイルズ_オブ_ザ_ワールド_なりきりダンジョン3
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー2
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ザ_ワールド_タクティクス_ユニオン
/wiki/テイルズ_オブ_ファンダム_Vol.1
/wiki/テイルズ_オブ_ファンダム_Vol.2
/wiki/テイルズ_オブ_バーサス
/wiki/テイルズ_オブ_ザ_ヒーローズ_ツインブレイヴ
/wiki/テイルズ_オブ_リンク
/wiki/テイルズ_オブ_アスタリア
/wiki/テイルズ_オブ_ザ_レイズ
/wiki/テイルズ_オブ_クレストリア
/wiki/テイルズ_オブ_タクティクス
/wiki/テイルズ_オブ_ブレイカー
/wiki/テイルズ_オブ_コモンズ
/wiki/テイルズ_オブ_ヴァールハイト
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ヴェスペリア#他のゲーム作品との関連
/wiki/テイルズ_オブ_ファンタジア#OVA
/wiki/テイルズ_オブ_エターニア_THE_ANIMATION
/wiki/テイルズ_オブ_シンフォニア#OVA
/wiki/テイルズ_オブ_ジ_アビス#テレビアニメ
/wiki/テイルズ_オブ_ヴェスペリア#劇場版アニメ
/wiki/テイルズ_オブ_ゼスティリア#テレビアニメ
/wiki/ケロロRPG_騎士と武者と伝説の海賊
/wiki/NAMCO_x_CAPCOM
/wiki/PROJECT_X_ZONE
/wiki/ヴィーナス&ブレイブス〜魔女と女神と滅びの予言〜
/wiki/日本テレネット_(ゲーム会社)
/wiki/ナムコ・テイルズスタジオ
/wiki/トライエース
/wiki/アルファ・システム
/wiki/ディンプス
/wiki/クライマックス_(ゲーム会社)
/wiki/マトリックス_(ゲーム会社)
/wiki/バンダイナムコスタジオ
/wiki/プロダクション・アイジー
/wiki/サンライズ_(アニメ制作会社)
/wiki/ユーフォーテーブル
/wiki/A-1_Pictures
/wiki/ウィットスタジオ
/wiki/豊田淳
/wiki/吉積信
/wiki/馬場英雄
/wiki/樋口義人
/wiki/藤島康介
/wiki/いのまたむつみ
/wiki/中澤一登
/wiki/奥村大悟
/wiki/椎名優
/wiki/桜庭統
/wiki/田村信二
/wiki/椎名豪
/wiki/テイルズ_オブ_シリーズの術技形態
/wiki/テイルズリング
/wiki/ビバ☆テイルズ_オブ
/wiki/テイルズ_オブ_マガジン
/wiki/テイルズ_オブ_フェスティバル
/wiki/The_Best_of_Tales
/wiki/マーボーカレー

#docker/anaconda3
docker起動

$ docker run -p 8080:8080 -it  continuumio/anaconda3   /bin/bash 

dockerで作業

# apt update
# apt upgrade
# apt install -y sudo vim
# vi wi.py
# python wi.py
/wiki/コンピュータRPG
/wiki/ニンテンドーDS
/wiki/PlayStation_Vita
/wiki/アルファ・システム
/wiki/バンダイナムコゲームス
/wiki/馬場英雄
/wiki/大舘隆司
/wiki/いのまたむつみ
/wiki/2007年
/wiki/12月6日
/wiki/2008年
/wiki/10月30日
/wiki/2012年
/wiki/1月26日
/wiki/2013年
/wiki/4月25日
/wiki/コンピュータエンターテインメントレーティング機構
/wiki/CEROレーティング12才以上対象ソフトの一覧
/wiki/バンダイナムコゲームス
/wiki/海童博行
/wiki/集英社
/wiki/ジャンプスクエア
/wiki/2008年
/wiki/バンダイナムコゲームス
/wiki/2007年
/wiki/12月6日
/wiki/ニンテンドーDS
/wiki/コンピュータRPG
/wiki/テイルズ_オブ_シリーズ
/wiki/PlayStation_Vita
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_デスティニー
/wiki/著作権侵害
/wiki/テイルズ_オブ_シリーズ#システム面での特色
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_デスティニー
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_シンフォニア
/wiki/不思議のダンジョン
/wiki/ローグライクゲーム
/wiki/プランテーション
/wiki/声優
/wiki/木村亜希子
/wiki/サエキトモ
/wiki/医者
/wiki/エスペラント語
/wiki/小山力也
/wiki/笹本優子
/wiki/二丁拳銃
/wiki/.45ロング・コルト弾
/wiki/うえだゆうじ
/wiki/イタリア語
/wiki/名塚佳織
/wiki/フランス語
/wiki/スペイン語
/wiki/男性
/wiki/平田広明
/wiki/傭兵
/wiki/銃剣
/wiki/狙撃手
/wiki/松岡由貴
/wiki/孤児
/wiki/ストリートチルドレン
/wiki/関西弁
/wiki/神戸市
/wiki/野島健児_(声優)
/wiki/藤田咲
/wiki/小桜エツコ
/wiki/島田敏
/wiki/真殿光昭
/wiki/ラテン語
/wiki/若本規夫
/wiki/田中敦子_(声優)
/wiki/宍戸留美
/wiki/着物
/wiki/沢城みゆき
/wiki/戦災孤児
/wiki/番犬
/wiki/あだ名
/wiki/ケルベロス
/wiki/狛犬
/wiki/杉田智和
/wiki/福原耕平
/wiki/斉藤貴美子
/wiki/大場真人
/wiki/大本眞基子
/wiki/青野武
/wiki/掛川裕彦
/wiki/アルファ・システム
/wiki/大舘隆司
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/いのまたむつみ
/wiki/木村亜希子
/wiki/KOKIA
/wiki/Follow_the_Nightingale
/wiki/Follow_the_Nightingale
/wiki/桜庭統
/wiki/テイルズ_オブ_シンフォニア_-ラタトスクの騎士-
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_エターニア
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_リバース
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_ザ_テンペスト
/wiki/リブート_(作品展開)
/wiki/KOKIA
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/テイルズ_オブ_ハーツ
/wiki/海童博行
/wiki/ジャンプスクエア
/wiki/テイルズ_オブ_マガジン
/wiki/トマト
/wiki/パスタ
/wiki/一迅社
/wiki/アンソロジーコミック
/wiki/金月龍之介
/wiki/松竹徳幸
/wiki/スーパーダッシュ文庫
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー2
/wiki/テイルズ_オブ_バーサス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/ケロロRPG_騎士と武者と伝説の海賊
/wiki/ケロロ軍曹
/wiki/タママ
/wiki/小桜エツコ
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ザ_ヒーローズ_ツインブレイヴ
/wiki/テイルズ_オブ_ザ_ワールド_タクティクス_ユニオン
/wiki/テイルズ_オブ_エクシリア2
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_ザ_レイズ
/wiki/エンターブレイン
/wiki/コンピュータゲーム
/wiki/テイルズ_オブ_シリーズ
/wiki/テイルズ_オブ_ファンタジア
/wiki/テイルズ_オブ_デスティニー
/wiki/テイルズ_オブ_デスティニーの登場キャラクター
/wiki/テイルズ_オブ_エターニア
/wiki/テイルズ_オブ_デスティニー2
/wiki/テイルズ_オブ_シンフォニア
/wiki/テイルズ_オブ_シンフォニア_ユニゾナントパック
/wiki/テイルズ_オブ_リバース
/wiki/テイルズ_オブ_レジェンディア
/wiki/テイルズ_オブ_ジ_アビス
/wiki/テイルズ_オブ_ヴェスペリア
/wiki/テイルズ_オブ_ハーツ
/wiki/テイルズ_オブ_グレイセス
/wiki/テイルズ_オブ_エクシリア
/wiki/テイルズ_オブ_エクシリア2
/wiki/テイルズ_オブ_ゼスティリア
/wiki/テイルズ_オブ_ベルセリア
/wiki/テイルズ_オブ_ザ_テンペスト
/wiki/テイルズ_オブ_ファンタジア_なりきりダンジョン
/wiki/テイルズ_オブ_ファンタジア_なりきりダンジョンX
/wiki/テイルズ_オブ_ザ_ワールド_〜サモナーズ_リネージ〜
/wiki/テイルズ_オブ_エターニア_オンライン
/wiki/テイルズ_オブ_シンフォニア_-ラタトスクの騎士-
/wiki/テイルズ_オブ_ザ_ワールド_なりきりダンジョン2
/wiki/テイルズ_オブ_ザ_ワールド_なりきりダンジョン3
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー2
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ザ_ワールド_タクティクス_ユニオン
/wiki/テイルズ_オブ_ファンダム_Vol.1
/wiki/テイルズ_オブ_ファンダム_Vol.2
/wiki/テイルズ_オブ_バーサス
/wiki/テイルズ_オブ_ザ_ヒーローズ_ツインブレイヴ
/wiki/テイルズ_オブ_リンク
/wiki/テイルズ_オブ_アスタリア
/wiki/テイルズ_オブ_ザ_レイズ
/wiki/テイルズ_オブ_クレストリア
/wiki/テイルズ_オブ_タクティクス
/wiki/テイルズ_オブ_ブレイカー
/wiki/テイルズ_オブ_コモンズ
/wiki/テイルズ_オブ_ヴァールハイト
/wiki/テイルズ_オブ_ザ_ワールド_レディアント_マイソロジー3
/wiki/テイルズ_オブ_ヴェスペリア#他のゲーム作品との関連
/wiki/テイルズ_オブ_ファンタジア#OVA
/wiki/テイルズ_オブ_エターニア_THE_ANIMATION
/wiki/テイルズ_オブ_シンフォニア#OVA
/wiki/テイルズ_オブ_ジ_アビス#テレビアニメ
/wiki/テイルズ_オブ_ヴェスペリア#劇場版アニメ
/wiki/テイルズ_オブ_ゼスティリア#テレビアニメ
/wiki/ケロロRPG_騎士と武者と伝説の海賊
/wiki/NAMCO_x_CAPCOM
/wiki/PROJECT_X_ZONE
/wiki/ヴィーナス&ブレイブス〜魔女と女神と滅びの予言〜
/wiki/日本テレネット_(ゲーム会社)
/wiki/ナムコ・テイルズスタジオ
/wiki/トライエース
/wiki/アルファ・システム
/wiki/ディンプス
/wiki/クライマックス_(ゲーム会社)
/wiki/マトリックス_(ゲーム会社)
/wiki/バンダイナムコスタジオ
/wiki/プロダクション・アイジー
/wiki/サンライズ_(アニメ制作会社)
/wiki/ユーフォーテーブル
/wiki/A-1_Pictures
/wiki/ウィットスタジオ
/wiki/豊田淳
/wiki/吉積信
/wiki/馬場英雄
/wiki/樋口義人
/wiki/藤島康介
/wiki/いのまたむつみ
/wiki/中澤一登
/wiki/奥村大悟
/wiki/椎名優
/wiki/桜庭統
/wiki/田村信二
/wiki/椎名豪
/wiki/テイルズ_オブ_シリーズの術技形態
/wiki/テイルズリング
/wiki/ビバ☆テイルズ_オブ
/wiki/テイルズ_オブ_マガジン
/wiki/テイルズ_オブ_フェスティバル
/wiki/The_Best_of_Tales
/wiki/マーボーカレー

docker hubに登録の前に

プログラムの先頭に

#! /usr/bin/env python

という行を入れ、シェルで

# chmod +x wi.py

実行可能にしておく。

$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                    NAMES
a9e75bdcc707        continuumio/anaconda3   "/usr/bin/tini -- /b…"   8 minutes ago       Up 8 minutes        0.0.0.0:8080->8080/tcp   gracious_matsumoto
$ docker commit a9e75bdcc707 kaizenjapan/wiki-py
sha256:74613fee4daa256c712ffa0dcd359adf9f2a2a82bc4bb2a8be01c6e563761e18
$ docker push kaizenjapan/wiki-py

次回から

$ docker run -p 8080:8080 -it kaizenjapan/hyaku-py  /bin/bash 

$ ./wi.py

で実行できる。

#Python3: URLをコマンドライン引数で
https://qiita.com/kaizen_nagoya/items/fc095b0c580a35001ea7

wic.py
#! /usr/bin/env python
#codeing:utf-8
# https://qiita.com/tadaken3/items/e09ba2ede988bbacb303
# https://qiita.com/kaizen_nagoya/items/ef4a8d21ec98851d10a0

import sys
import re
from bs4 import BeautifulSoup
from urllib.request import urlopen
from urllib.parse import unquote
import urllib.parse 

args = sys.argv

url = "https://ja.wikipedia.org/wiki/" + urllib.parse.quote(args[1].upper())

html = urlopen(url)
bsObj = BeautifulSoup(html,'html.parser')

pattern = re.compile("^(/wiki/)((?!:).)*$")

for link in bsObj.find('div',{'id':'bodyContent'}).findAll('a',href = pattern):
        if 'href' in link.attrs:
                    print (unquote(link.attrs['href']))  

実行してみる。

# ./wic.py hazop
/wiki/FMEA
/wiki/フォルトツリー解析
/wiki/FMEA
/wiki/日本学術会議
/wiki/安全工学シンポジウム
/wiki/TRIZ
/wiki/小川清
/wiki/日本技術士会
/wiki/ISSN
/wiki/デジタルオブジェクト識別子
/wiki/Portable_Document_Format

やっつけ感満載。

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

#文書履歴(document history)
ver. 0.01 初稿 20190501 夕
ver. 0.02 引数追加 20190501 夜
ver. 0.03 詳細追記 20190502

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0