gpt4 book ai didi

web-crawler - 创建机器人/爬虫

转载 作者:行者123 更新时间:2023-12-03 02:54:23 25 4
gpt4 key购买 nike

我想做一个小机器人,以便在几个合作伙伴网站上自动和牙周冲浪。这将为这里的许多员工节省几个小时。

机器人必须能够:

  • 连接到本网站,其中一些将自己登录为用户,访问和解析网站上的特定信息。
  • 该机器人必须集成到我们的网站并使用我们网站的数据更改其设置(已使用的用户...)。最终它必须总结解析信息。
  • 最好这个操作必须从客户端完成,而不是在服务器上。

  • 上个月我试过 Dart ,很喜欢……
    我想在 Dart 中做到这一点。

    但我有点失落:
    我可以为每个要解析的网站使用 Document 类对象吗?
    可能是 headless 的还是应该使用 chrome/dartium api 来控制网络浏览器(我想避免这种情况)?

    我一直在阅读这个线程: https://groups.google.com/a/dartlang.org/forum/?fromgroups=#!searchin/misc/crawler/misc/TkUYKZXjoEg/Lj5uoH3vPgIJ
    是否使用 https://github.com/dart-lang/html5lib对我的情况是个好主意吗?

    最佳答案

    这有两个部分。

  • 从远程站点获取页面。
  • 将页面读入可以解析的类。

  • 对于第一部分,如果您计划运行此客户端,您可能会遇到跨站点问题,因为您的页面由服务器 X 提供,无法从服务器 Y 请求页面,除非设置了正确的 header .

    参见: CORS with Dart, how do I get it to work?
    Dart application and cross domain policy
    或者有问题的站点需要返回正确的 CORS headers

    假设您实际上可以从远程站点客户端获取页面,则可以使用 HttpRequest 来检索实际内容:

    // snippet of code...
    new HttpRequest.get("http://www.example.com", (req) {
    // process the req.responseText
    });

    您也可以使用 HttpRequest.getWithCredentials 。如果该站点有一些自定义登录,那么您可能会遇到问题(因为您可能不得不将您站点的用户名和密码 Http POST 到他们的服务器 -

    这是第二部分出现的时候。您可以使用 DocumentFragment.html(...) 构造函数处理您的 HTML,它为您提供一个节点集合,您可以对其进行迭代和递归。下面的示例显示了一个静态 html 块,但您可以使用从上面的 HttpRequest 返回的数据。

    import 'dart:html';

    void main() {
    var d = new DocumentFragment.html("""
    <html>
    <head></head>
    <body>Foo</body>
    </html>
    """);

    // print the content of the top level nods
    d.nodes.forEach((node) => print(node.text)); // prints "Foo"
    // real-world - use recursion to go down the hierarchy.

    }

    我猜(之前没有写过蜘蛛)你会想要在特定位置/深度拉出特定标签来总结你的结果,并将 超链接中的 url 添加到你的机器人将要执行的队列中导航到。

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com