tomo2chin2 commited on
Commit
ee6f0ce
·
verified ·
1 Parent(s): 600cc03

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -19
app.py CHANGED
@@ -28,10 +28,8 @@ def scroll_to_bottom(driver):
28
  一旦ページの最下部までスクロールし、
29
  Lazy Loadなどで追加要素が生成されるのを待つ
30
  """
31
- # 現在の高さ
32
  last_height = driver.execute_script("return document.body.scrollHeight")
33
  while True:
34
- # 最下部までスクロール
35
  driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
36
  time.sleep(1) # スクロール後の描画待ち
37
  new_height = driver.execute_script("return document.body.scrollHeight")
@@ -65,36 +63,41 @@ def render_fullpage_screenshot(html_code):
65
  )
66
  time.sleep(1)
67
 
68
- # 2) ページ全体サイズを取得してウィンドウを拡張
69
- # → Lazy Loadがあればスクロールして要素を読み込む
70
- max_iterations = 3
71
- for _ in range(max_iterations):
72
- # ページ全体の幅・高さを取得
73
- w1, h1 = get_full_dimensions(driver)
74
- # ウィンドウをそのサイズに合わせる
75
- driver.set_window_size(w1, h1)
 
 
 
 
 
76
  time.sleep(1)
77
- # 一度最下部までスクロールし、Lazy Load等を促す
78
  scroll_to_bottom(driver)
79
- # 再度サイズを取得
80
- w2, h2 = get_full_dimensions(driver)
81
- # 変化がなければ打ち切り
82
- if (w1 == w2) and (h1 == h2):
83
- break
84
 
85
- # 3) 最後にスクロールバーを消したい場合はここでoverflow: hidden
86
  driver.execute_script("""
87
  document.documentElement.style.overflow = 'hidden';
88
  document.body.style.overflow = 'hidden';
89
  """)
90
  time.sleep(1)
91
 
92
- # overflow: hidden による再レイアウトを考慮してもう一度調整
93
  w3, h3 = get_full_dimensions(driver)
94
  driver.set_window_size(w3, h3)
95
  time.sleep(1)
96
 
97
- # 4) 最終的にスクリーンショットを撮る
 
 
 
 
98
  png = driver.get_screenshot_as_png()
99
 
100
  except Exception as e:
 
28
  一旦ページの最下部までスクロールし、
29
  Lazy Loadなどで追加要素が生成されるのを待つ
30
  """
 
31
  last_height = driver.execute_script("return document.body.scrollHeight")
32
  while True:
 
33
  driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
34
  time.sleep(1) # スクロール後の描画待ち
35
  new_height = driver.execute_script("return document.body.scrollHeight")
 
63
  )
64
  time.sleep(1)
65
 
66
+ # ---- (A) 一度ページ全体のサイズを取得してウィンドウを拡張 ----
67
+ w1, h1 = get_full_dimensions(driver)
68
+ driver.set_window_size(w1, h1)
69
+ time.sleep(1)
70
+
71
+ # ---- (B) ページ下端までスクロールしてLazy Load等を発火させる ----
72
+ scroll_to_bottom(driver)
73
+ time.sleep(1)
74
+
75
+ # 再度サイズを取得して変化があれば再設定
76
+ w2, h2 = get_full_dimensions(driver)
77
+ if (w2 != w1) or (h2 != h1):
78
+ driver.set_window_size(w2, h2)
79
  time.sleep(1)
80
+ # 念のためもう一度最下部へ
81
  scroll_to_bottom(driver)
82
+ time.sleep(1)
 
 
 
 
83
 
84
+ # ---- (C) スクロールバーを非表示にする(不要ならコメントアウト)----
85
  driver.execute_script("""
86
  document.documentElement.style.overflow = 'hidden';
87
  document.body.style.overflow = 'hidden';
88
  """)
89
  time.sleep(1)
90
 
91
+ # overflow: hidden による再レイアウトでサイズが変わる可能性がある
92
  w3, h3 = get_full_dimensions(driver)
93
  driver.set_window_size(w3, h3)
94
  time.sleep(1)
95
 
96
+ # ---- (D) ★最終的にトップへ戻す★ ----
97
+ driver.execute_script("window.scrollTo(0, 0);")
98
+ time.sleep(1)
99
+
100
+ # ---- (E) スクリーンショット取得 ----
101
  png = driver.get_screenshot_as_png()
102
 
103
  except Exception as e: