# -*- encoding:utf-8 -*- ''' @Author : dingjiawen @Date : 2024/03/21 15:57 @Usage : @Desc :使用playwright自动一个浏览器,执行js ''' import requests from playwright.sync_api import sync_playwright import time import os BASE_URL = 'https://spa2.scrape.center/' INDEX_URL = BASE_URL + "/api/movie?limit={limit}&offset={offset}&token={token}" MAX_PAGE = 10 LIMIT = 10 context = sync_playwright().start() browser = context.chromium.launch(devtools=True, headless=False) page = browser.new_page() # 注意这里路径需要加上** page.route( "**/js/chunk-10192a00.243cb8b7.js", lambda route: route.fulfill(path='chunk.js') ) page.goto(BASE_URL, wait_until='networkidle') def get_token(offset): # page.wait_for_function('window.encrypt !== undefined') try: result = page.evaluate('''() => { console.log('window',window) console.log('encrypt',window.encrypt) return window.encrypt("%s","%s") }''' % ('/api/movie', offset)) return result except Exception as e: time.sleep(100) print(e) for i in range(MAX_PAGE): offset = i * LIMIT token = get_token(offset) print(token) index_url = INDEX_URL.format(limit=LIMIT, offset=offset, token=token) response = requests.get(index_url) print('response', response.json())