wikiのURLをエンコードしようとしています。
wikiのURLは、基本的には、
https://ja.wikipedia.org/wiki/hogehoge
となりますが、hogehogeが、日本語オンリーの場合、英語オンリーの場合、日本語・英語交じりの場合があります。具体的には下記の感じです。
- https://ja.wikipedia.org/wiki/飯伏幸太
- https://ja.wikipedia.org/wiki/MIKAMI
- https://ja.wikipedia.org/wiki/NOSAWA論外
これらのwiki/より後ろを、うまい具合に日本語部分のみAsciiエンコードする方法はありますでしょうか。
現在、下記のコードを作ったのですが、これですと、(1)はasciiエンコードできるのですが、(2)もエンコードしてしまっているようです。(3)は、今後対応が必要になるかなと思っています。
Pyhon
1def get_html_object(url): 2 myURL_list = url.split('wiki/') 3 myURL_list[0] = url.replace(myURL_list[1],'') 4 myURL_list[1] = urllib.parse.quote(myURL_list[1]) 5 6 html_obj = urllib.request.urlopen(myURL_list[0] + str(myURL_list[1])) 7 print(myURL_list[0] + str(myURL_list[1])) 8 return html_obj 9
包括的にうまいこと処理してくれるモジュールがあってもおかしくないと思うのですが、見つからない状況です。
ご存じの方いらっしゃれば、ぜひ教えてください。
どうぞよろしくお願いいたします。
「Asciiエンコード」とはなんでしょう? パーセントエンコーディング https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0 (まさにこれ)のことでしょうが普通そうは呼ばないと思ったので。
それとソースは正しく読めるようにしましょう。 https://teratail.com/help/question-tips#questionTips3-5-1 や https://teratail.com/help#about-markdown を参考に(コードを選択して<code>ボタン等で)コードの前後を ``` で括ってみてください。
"(2)もエンコードしてしまっているようです"の部分ですが、なにをどう確認してそう判断したのかも追記してもらうといいかと思いました。
ご指摘ありがとうございます。
少し直しました。
回答1件
あなたの回答
tips
プレビュー