1、先用playwright抓取网页上的所有文本;

2、所得文本交给deepseek清洗、梳理;

3、呈现整理后清洗、简明的信息

# 主逻辑:网络爬虫 -> 文本提取 -> deepseek分析 -> 呈现结果

import time
from playwright.sync_api import sync_playwright
from openai import OpenAI

# deepseek api 调用
client = OpenAI(api_key="sk-*********************************", base_url="https://api.deepseek.com")

#####################################################
def crawl(url): 
    #爬取网页文本
    with sync_playwright() as p:
        browser = p.chromium.launch(
            executable_path="C:\Program Files\Google\Chrome\Application\chrome.exe", 
            headless=False
        )
        page = browser.new_page()
        page.goto(url)
        #滚动浏览器窗口数次
        for i in range(36):
            page.wait_for_timeout(1000) 
            page.evaluate('''() => {
                window.scrollBy(0, 1000); 
            }''') 
            #判断是否已经滚动到页面底部
            isScrollAtBottom=page.evaluate('''() => {
                return window.innerHeight + window.scrollY >= document.body.scrollHeight;
            }''')
            if isScrollAtBottom:
                break
            print("滚动浏览器窗口次数:",i) 
            print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))  
        
        # 提取页面内容
        content = page.evaluate('''() => {             
            return document.body.innerText;
        }''')
        browser.close()
        return content

#####################################################
# AI分析文本
def analyze(task,text):
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": task},
            {"role": "user", "content":text},
        ],
        stream=False
    )

    return response.choices[0].message.content
#####################################################

url="https://news.example.com/"


result=crawl(url)
#print(result)
print("\n"*3)
print("抓取文本长度:",len(result))
print("\n"*3)
print("AI正在分析中,请稍后...")

# deepseek 系统角色(任务)设定:
task="""
    请提取以下从网页中抓取的文本信息,
    去除无意义的字词、符号、广告和噪音信息,只保留有意义的文本内容,
    并将结果整理成清晰、简明的纯文本摘要(按消息的社会风险度逆序列表排列):
    """


print("\n"*3)
analysis0=analyze(task,result)
print(analysis0)

print("\n"*3)
task0="""
    请提取以下文本关键词,并用逗号分隔:
    """
analysis1=analyze(task0,analysis0)
print(analysis1)

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐