回答編集履歴
1
正規表現での方法
answer
CHANGED
@@ -19,4 +19,28 @@
|
|
19
19
|
大文字小文字は区別される(以降で説明する文字列のメソッドでも同様)。
|
20
20
|
|
21
21
|
正規表現を使ってもできますが、モジュールをimportしなければいけないことなど、少し面倒なところがあると思ったので、inを使いました。
|
22
|
-
正規表現の方が良い場合は、コメントいただければ幸いです。
|
22
|
+
正規表現の方が良い場合は、コメントいただければ幸いです。
|
23
|
+
|
24
|
+
### 正規表現の方法(追記1)
|
25
|
+
```Python
|
26
|
+
import os
|
27
|
+
import re
|
28
|
+
省略
|
29
|
+
for i in range(len(tags)):
|
30
|
+
filepath = "{}.pdf".format(i)
|
31
|
+
target = tags[i]["href"]
|
32
|
+
if re.match(r'J_TrafficReport_(.+).pdf',os.path.basename(target)):
|
33
|
+
url_1 = urljoin(base, target)
|
34
|
+
request = urllib.request.Request(url=url_1, headers=headers)
|
35
|
+
with open(filepath, "wb") as f:
|
36
|
+
f.write(urllib.request.urlopen(request).read())
|
37
|
+
```
|
38
|
+
#### 参考にさせていただいたサイト
|
39
|
+
[Pythonでパス文字列からファイル名・フォルダ名・拡張子を取得、結合](https://note.nkmk.me/python-os-basename-dirname-split-splitext/)
|
40
|
+
> ファイル名を取得: os.path.basename()
|
41
|
+
パス文字列からファイル名を取得するにはos.path.basename()を使う。
|
42
|
+
|
43
|
+
[書きながら覚えよう!Pythonで正規表現を使う方法【初心者向け】](https://techacademy.jp/magazine/15635)
|
44
|
+
[Pythonの正規表現マッチオブジェクトでマッチした文字列や位置を取得](https://note.nkmk.me/python-re-match-object-span-group/)
|
45
|
+
> ブール値としての扱い(if文での使い方)
|
46
|
+
マッチオブジェクトはブール値として判定される場合は常にTrueとして扱われる。
|