質問編集履歴
2
題名の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
HTML
|
1
|
+
HTMLコードのpythonによる正規表現で指定した部分が取得できない理由は?
|
test
CHANGED
File without changes
|
1
内容追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,34 +8,64 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
ある程度は、値を取得できているのですが、
|
11
|
+
ある程度は、値を他の部分では取得できているのですが、
|
12
12
|
|
13
13
|
正規表現で絞ったhtmlから、再度、正規表現を
|
14
14
|
|
15
|
-
行っている部分の値が取得できません。
|
15
|
+
行っている部分の値がうまく取得できません。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
コードは以下のようになります。
|
16
20
|
|
17
21
|
|
18
22
|
|
19
23
|
```python
|
20
24
|
|
21
|
-
"""
|
25
|
+
"""(seleniumで取得した)htmlの絞り込み"""
|
22
26
|
|
23
|
-
pattern1 = '<th
|
27
|
+
pattern1 = '<th>合計</th>(.*?)</tr>'
|
24
28
|
|
25
|
-
html = re.findall(pattern1,html,re.S)
|
29
|
+
total_html = re.findall(pattern1,html,re.S)
|
26
30
|
|
27
|
-
"""確認用に表示"""
|
31
|
+
"""確認用に表示"""
|
28
32
|
|
29
33
|
print(total_html)
|
30
34
|
|
31
35
|
|
32
36
|
|
33
|
-
|
37
|
+
pattern2 = '<td class=".cost">(.*?)</td>'
|
34
38
|
|
35
|
-
total = re.findall(
|
39
|
+
total = re.findall(pattern2,total_html,re.S)
|
36
40
|
|
37
|
-
|
41
|
+
print("合計金額:"+total[0])#合計金額部分の表示
|
38
|
-
|
39
|
-
print(type(total))
|
40
42
|
|
41
43
|
```
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
確認用に表示したhtmlコード部分([]も表示されてしまっています)
|
48
|
+
|
49
|
+
```ここに言語を入力
|
50
|
+
|
51
|
+
['\n<td class="cost">1,000円</td>\n<td class="cost">0円</td>\n<td class="cost">0円</td>\n\n<td class="cost">500円</td>\n\n']
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
自分がまだまだ正規表現について知識が未熟なので
|
58
|
+
|
59
|
+
原因が分かりません。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
なぜ値をうまく取得できないのでしょうか?
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
原因がお分かりになる方、いらっしゃいましたら
|
68
|
+
|
69
|
+
ご教授お願いできないでしょうか?
|
70
|
+
|
71
|
+
よろしくお願いいたします。
|