123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from time import sleep
- from selenium import webdriver
- from selenium.webdriver.chrome.service import Service
- import img_pdf_png
- def scroll_page(driver):
-
- page_height = driver.execute_script('return document.body.scrollHeight')
- print(page_height)
-
- web_height = 300
- n1 = page_height // web_height
- last_height = page_height % web_height
- print(last_height)
- driver.execute_script("document.documentElement.style.overflowY = 'hidden'")
- if n1 > 0:
- for j in range(n1):
-
- if j == n1 - 1 and last_height > 0:
- driver.execute_script("window.scrollBy(0,{})".format(page_height))
- print("滚到底了")
- else:
- driver.execute_script("window.scrollBy(0,{})".format(web_height))
-
- sleep(1)
- new_page_height = driver.execute_script('return document.body.scrollHeight')
- if new_page_height > page_height:
- scroll_page(driver)
- def html2img(driver, image_folder):
- page_width = driver.execute_script('return document.documentElement.scrollWidth')
-
- driver.execute_script("$('#app #tipsAlert').next().css('display', 'none')")
- window_height = driver.execute_script("return window.screen.height")
- driver.set_window_size(page_width, window_height)
- scroll_page(driver)
- driver.execute_script("document.body.scrollTop = document.documentElement.scrollTop = 0")
- page_height = driver.execute_script('return document.body.scrollHeight')
- print("浏览器宽{} 浏览器高度{} 网页实际总高度{}".format(page_width, window_height, page_height))
- web_height = driver.execute_script("return window.innerHeight")
- n1 = page_height // web_height
- print("当前窗口网页高度{}".format(web_height))
- last_height = page_height % web_height
- print("底部多出来的部分{}".format(last_height))
- margin_flag = False
- if n1 == 0 or (n1 == 1 and last_height == 0):
- driver.get_screenshot_as_file(r'{}/{}.png'.format(image_folder, '0'))
- else:
- j = 0
- while j <= n1:
- if j == 0:
- driver.execute_script("window.scrollBy(0,0)")
-
- elif j == n1 and last_height > 0:
- driver.execute_script("$('#app #resetcss').css('margin-bottom', '{}px')".format(web_height))
- driver.execute_script("window.scrollBy(0,{})".format(web_height))
- print("拉到底拉")
- else:
- driver.execute_script("window.scrollBy(0,{})".format(web_height))
- sleep(1)
- driver.save_screenshot(r'{}/{}.png'.format(image_folder, j))
- j = j + 1
- if __name__ == "__main__":
-
- options = webdriver.ChromeOptions()
- options.add_argument("headless")
-
-
- s = Service(executable_path='E:/chromedriver-win64/chromedriver.exe')
- driver = webdriver.Chrome(service=s, options=options)
-
- driver.get('https://ficc.hzinsights.com/reportshare_crm_report?code=4e38d30e656da5ae9d3a425109ce9e04')
- sleep(5)
- image_folder = './imgs'
- output_file = './screenshot'
- file_name = 'output1'
- html2img(driver, image_folder)
- img_pdf_png.merge_images(image_folder, output_file, file_name)
- driver.quit()
|