import asyncio
import time
from threading import Thread
from datetime import datetime
from pyppeteer import launch
from fine_bi.bi_config import bu_list
width, height = 1366, 768
url = 'http://fbcbi.efoxconn.com/decision/view/form?viewlet=%252FInventory_PRD%252FBU_Home_Page.frm&__parameters__=%257B%2522__pi__%2522%253Atrue%252C%2522bucode%2522%253A%2522CPB%2522%252C%2522rmbrate%2522%253A%2522M%2520RMB%2522%257D&_=1660202745718'
async def main(url,name):
browser = await launch({'headless': False, 'args': ['--start-maximized']})
page = await browser.newPage()
await page.setViewport({'width': width, 'height': height})
await page.goto(url)
await page.waitForSelector('div[widgetname=TITLE_REPORT3]')
await page.evaluate('''() =>{ document.querySelector('div[widgetname=FORM]').style='';
document.querySelector('div[widgetname=BODY]').style='';
}''')
page_height = await page.evaluate('document.body.scrollHeight')
print(name, 'page_height:', page_height)
await page.setViewport({'width': width, 'height':page_height})
await page.goto(url)
await page.waitForSelector('div[widgetname=TITLE_REPORT3]')
await page.evaluate('''() =>{ document.querySelector('div[widgetname=FORM]').style='';
document.querySelector('div[widgetname=BODY]').style='';
}''')
time.sleep(3)
# time.sleep(1000)
image_root = r'E:\code\dock_project\fine_bi\images'
image_path = image_root + '\\' + name + '.png'
await page.screenshot({'path': image_path})
await browser.close()
if __name__ == '__main__':
start = datetime.now()
tasks = []
for bu in bu_list:
print(bu['name'], bu['url'])
name = bu['name'],
print(name)
# time.sleep(1000)
url = bu['url']
tasks.append(asyncio.ensure_future(main(bu['url'], bu['name'])))
# tasks = [asyncio.ensure_future(main(url, '222')), asyncio.ensure_future(main(url, '333'))]
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
# asyncio.get_event_loop().run_until_complete(main(url, '222'))
print('done')
end = datetime.now()
print('time:', end - start)
参考
https://baijiahao.baidu.com/s?id=1714015900283907482&wfr=spider&for=pc