# -*- coding: utf-8 -*- """ 消息模块基础, 用于打开浏览器等相关操作 """ import random from playwright.sync_api import sync_playwright import time class CryptoCrawler: def __init__(self, url, selector, headless=True): self.url = url self.selector = selector self.headless = headless def main(self): with sync_playwright() as playwright: browser = playwright.webkit.launch(headless=self.headless) if self.headless: context = browser.new_context() else: context = browser.new_context(viewport={'width': 1920, 'height': 1080}) page = context.new_page() result = "" try: page.goto(self.url) page.wait_for_load_state('load') time.sleep(2) # 确保页面完全加载 element = page.query_selector(self.selector) if element: res = element.text_content().strip() result = res except Exception as e: err_str = f"Error fetching {self.url}: {e}" return err_str page.close() browser.close() if result: return result return None