| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- 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
|