ファイルテストとPython
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[今さらPython]]
* ファイルの存在確認は? [#c893f37f]
# もしファイルがあったら消す。
if(os.path.exists("wavfile.wav") == True):
os.remove("wavfile.wav")
* ダウンロードを書いてみる。 [#l4a6bf2a]
ファイルの有無で分岐し、ないか古いならダウンロードしてみ...
サンプルは、ここの管理人の投稿しているネット小説のサイト...
** コード [#qd37421f]
#!/usr/bin/env python3
# coding: UTF-8
from urllib import request
from lxml import html
import os
import os.path
import pathlib
URL = "https://ncode.syosetu.com/n3170ch/"
fn = "0.html"
#
# ダウンロードの必要性判定。
#
tf = False # URL downloadするかの判定フラグ
# 該当ファイルがないなら真
if not os.path.isfile(fn):
tf = True
# 該当ファイルがあっても、本スクリプトより古いなら真(URL...
else:
ff = pathlib.Path(fn)
ff2 = pathlib.Path(__file__)
if ff.stat().st_mtime < ff2.stat().st_mtime:
tf = True
# 判定結果が真ならダウンロードする。偽ならファイルから読...
if tf == True:
html2 = request.urlopen(URL).read()
with open(fn, mode='w') as f:
f.write(html2.decode('utf-8'))
else:
with open(fn, mode='r') as f:
html2 = f.read().encode('utf-8') # fromstringに食わせる...
print(type(html2))
# スクレイピングしてリンクの一覧を取り出す。
data3 = html.fromstring(html2) # str()してはいけない。化...
ttls = data3.xpath("//dl//dd//a")
for x in ttls:
if type(x.text) is str and len(x.text) > 3:
#print(type(x))
xname = x.text
xlink = x.attrib['href']
print(xname,"\t",xlink)
** 実行結果 [#o545e026]
<class 'bytes'>
プロローグ /n3170ch/1/
魔法の考察 /n3170ch/4/
ぽんこつバイオレンスと出会い /n3170ch/5/
旅のお供完成 /n3170ch/6/
砂浜と結界 /n3170ch/7/
拾いました。 /n3170ch/8/
追憶の魔法 /n3170ch/10/
旅路のあれこれ /n3170ch/11/
ポリット平原(1) /n3170ch/12/
ポリット平原(2) /n3170ch/13/
教団の女 /n3170ch/14/
とんずらしよう /n3170ch/16/
廃隧道(はいずいどう) /n3170ch/17/
それぞれの夜 /n3170ch/18/
女は強し? /n3170ch/19/
異世界の人々 /n3170ch/20/
砂漠の町にて /n3170ch/21/
魔族と文化 /n3170ch/22/
アイリスの事情 /n3170ch/23/
終了行:
[[今さらPython]]
* ファイルの存在確認は? [#c893f37f]
# もしファイルがあったら消す。
if(os.path.exists("wavfile.wav") == True):
os.remove("wavfile.wav")
* ダウンロードを書いてみる。 [#l4a6bf2a]
ファイルの有無で分岐し、ないか古いならダウンロードしてみ...
サンプルは、ここの管理人の投稿しているネット小説のサイト...
** コード [#qd37421f]
#!/usr/bin/env python3
# coding: UTF-8
from urllib import request
from lxml import html
import os
import os.path
import pathlib
URL = "https://ncode.syosetu.com/n3170ch/"
fn = "0.html"
#
# ダウンロードの必要性判定。
#
tf = False # URL downloadするかの判定フラグ
# 該当ファイルがないなら真
if not os.path.isfile(fn):
tf = True
# 該当ファイルがあっても、本スクリプトより古いなら真(URL...
else:
ff = pathlib.Path(fn)
ff2 = pathlib.Path(__file__)
if ff.stat().st_mtime < ff2.stat().st_mtime:
tf = True
# 判定結果が真ならダウンロードする。偽ならファイルから読...
if tf == True:
html2 = request.urlopen(URL).read()
with open(fn, mode='w') as f:
f.write(html2.decode('utf-8'))
else:
with open(fn, mode='r') as f:
html2 = f.read().encode('utf-8') # fromstringに食わせる...
print(type(html2))
# スクレイピングしてリンクの一覧を取り出す。
data3 = html.fromstring(html2) # str()してはいけない。化...
ttls = data3.xpath("//dl//dd//a")
for x in ttls:
if type(x.text) is str and len(x.text) > 3:
#print(type(x))
xname = x.text
xlink = x.attrib['href']
print(xname,"\t",xlink)
** 実行結果 [#o545e026]
<class 'bytes'>
プロローグ /n3170ch/1/
魔法の考察 /n3170ch/4/
ぽんこつバイオレンスと出会い /n3170ch/5/
旅のお供完成 /n3170ch/6/
砂浜と結界 /n3170ch/7/
拾いました。 /n3170ch/8/
追憶の魔法 /n3170ch/10/
旅路のあれこれ /n3170ch/11/
ポリット平原(1) /n3170ch/12/
ポリット平原(2) /n3170ch/13/
教団の女 /n3170ch/14/
とんずらしよう /n3170ch/16/
廃隧道(はいずいどう) /n3170ch/17/
それぞれの夜 /n3170ch/18/
女は強し? /n3170ch/19/
異世界の人々 /n3170ch/20/
砂漠の町にて /n3170ch/21/
魔族と文化 /n3170ch/22/
アイリスの事情 /n3170ch/23/
ページ名: