# -*- coding: UTF-8 -*- """ @time:2021/11/13 """ import asyncio import json from pyppeteer import launcher from pyppeteer import launch from pyppeteer.network_manager import Request, Response async def main(): start_parm = { # "executablePath": r"C:\Users\yq\AppData\Local\pyppeteer\pyppeteer\local-chromium\722234\chrome-win\chrome.exe", "headless": False, 'autoClose':False, "args": [ '--disable-infobars', # 关闭自动化提示框 # '--no-sandbox', # '--start-maximized', '--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', # UA ], } browser = await launch(**start_parm) page = await browser.newPage() # await page.setJavaScriptEnabled(enabled=True) # 启用拦截器(这样写无效) # await page.setRequestInterception(True) # page.on('request', intercept_request) # page.on('response', intercept_response) # 写在这里 await page.setRequestInterception(True) async def intercept(request): if any(request.resourceType == _ for _ in ('stylesheet', 'image', 'font')): #"image", "media", "eventsource", "websocket", "stylesheet", "font" await request.abort() else: await request.continue_() page.on('request', lambda req: asyncio.ensure_future(intercept(req))) js_text = """ () =>{ alert('aaa'); Object.defineProperties(navigator,{ webdriver:{ get: () => false } }); window.navigator.chrome = { runtime: {}, }; Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] }); Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3, 4, 5,6], }); } """ # await page.evaluateOnNewDocument(js_text) await page.goto('https://hxxxng.com/') #这页无图 await asyncio.sleep(2) await page.goto('https://hf.xxxng.com/housing/') #这页仍然无图。bingo # await browser.close() asyncio.get_event_loop().run_until_complete(main())