当前位置: 首页 > article >正文

ScrapeGraphAl AI爬虫

官网:https://scrapegraph-ai.readthedocs.io/en/latest/

from flask import Flask, request, jsonify
from scrapegraphai.graphs import SmartScraperGraph

app = Flask(__name__)

openai_key = "sk-xxxxxxxxxxxxxxxxxxxx"

graph_config = {
    "llm": {
        "api_key": openai_key,
        "model": "openai/gpt-4o",
    },
}


@app.route('/scrape', methods=['POST'])
def scrape():
    data = request.json
    source_url = data.get('source')

    if not source_url:
        return jsonify({"error": "No source URL provided"}), 400

    smart_scraper_graph = SmartScraperGraph(
        prompt="""请执行以下步骤:
    1. 仔细分析网页结构,识别并提取主要正文内容。
    2. 排除所有非正文元素,包括但不限于:导航菜单、侧边栏、页脚、广告、评论区、相关文章推荐等。
    3. 如果提取的正文内容超过14000个标记,请进行适当的总结,保留核心信息和主要观点。
    4. 直接返回处理后的正文内容或总结,不要添加任何额外的说明、标题或格式化。

    请确保返回的内容仅包含网页的实质性正文部分。""",
        source=source_url,
        config=graph_config
    )

    try:
        result = smart_scraper_graph.run()
        return jsonify({"result": result})
    except Exception as e:
        return jsonify({"error": str(e)}), 500


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)

代码参考的官网示例,比较好用,不过3.5经常会因为文章超长而报错,即使我提示词中写明了超过14000则总结也经常出错,因此用4o是个不错的选择,牺牲小部分速度,换来高准度


http://www.kler.cn/a/323779.html

相关文章:

  • # 第20章 Cortex-M4-触摸屏
  • 全面解读 USB Key:定义、使用场景、加密技术及 Java 实现
  • Shell基础2
  • 五、函数封装及调用、参数及返回值、作用域、匿名函数、立即执行函数
  • Queuing 表(buffer表)的优化实践 | OceanBase 性能优化实践
  • uni-app表格带分页,后端处理过每页显示多少条
  • 零基础教你如何开发webman应用插件
  • Mybatis中字段返回值映射问题
  • XXL-JOB在SpringBoot中的集成
  • 【Redis】安装redis-plus-plus
  • Trick : pair 的二分问题
  • mariadb无法存储中文
  • Colorful/七彩虹将星X17 AT 22 Win11原厂OEM系统 带COLORFUL一键还原
  • 今年Java回暖了吗
  • 根据标签实现CD
  • HJ50-四则运算:栈的运用、中缀表达式转后缀表达式并计算结果
  • C++(9.26)
  • FastReport时间格式化(含判空)
  • Python办公自动化之Word
  • 探索未来:MultiOn,AI的下一个革命
  • 示例说明:elasticsearch实战应用
  • 等保托管怎么样,流程是什么样的?
  • 弹性盒模型关键几个点:
  • 【SQL】总结Select语句中用来连接字符串的方法
  • 万字长文详解FreeRTOS软件定时器
  • 机器学习:opencv--特征检测