回答編集履歴

1

Update

2022/05/02 12:47

投稿

melian
melian

スコア19825

test CHANGED
@@ -1,5 +1,16 @@
1
1
  **sample.html**
2
2
  ```html
3
+ <script type="text/javascript">
4
+ var hogehoge =
5
+ {
6
+ "fuga": [
7
+ {
8
+ "foo": "bar"
9
+ }
10
+ ]
11
+ }
12
+ </script>
13
+
3
14
  <script type="text/javascript">
4
15
  window.__additionalDataLoaded('',
5
16
  {
@@ -25,9 +36,19 @@
25
36
  url = rf'file://{os.path.dirname(__file__)}/sample.html'
26
37
  driver.get(url)
27
38
 
28
- script = driver.execute_script("return document.getElementsByTagName('script')[0].innerHTML")
39
+ script = driver.execute_script("return document.getElementsByTagName('script')")
40
+
41
+ data = ''
42
+ for s in script:
43
+ inner = s.get_attribute('innerHTML')
29
- data = re.findall(r'.*?({.+})', script, re.MULTILINE | re.DOTALL)[0]
44
+ data = re.findall(r'window.__additionalDataLoaded.*?({.+})', inner,
45
+ re.MULTILINE | re.DOTALL)
46
+ if data:
47
+ data = data[0]
48
+ break
49
+
50
+ if data:
30
- print(data)
51
+ print(data)
31
52
 
32
53
  #
33
54
  {