V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
aboutboy
V2EX  ›  分享创造

一时兴起,写了一个比较通用的 web 采集系统

  •  
  •   aboutboy · 2020-06-23 16:34:01 +08:00 · 1954 次点击
    这是一个创建于 1614 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为了方便,就直接用的 laravel7.0+querylist4.2 实现。 打算先把架子搭起来,后面视需求再慢慢完善和优化。

    好久没用过新版的 querylist 了,有不少地方和之前的用法不太一样了,所以昨天刚接触时遇到不少坑,很烦躁。最终还是一点点解决了包括列表采集、页面乱码等问题。

    今天又调试到这个点,总算搞得比较满意了。

    目前针对三个形式差异比较大的网站分别写了采集规则。测试都很满意。

    大概的思路是,先采集分类,把分类数据保存到一个分类表。同时还有一个任务表,会记录分类的 url 和状态信息。然后再根据分类 url 去采集列表信息,也就是详情页的 url,也保存到任务表。同时根据规则里配置的列表页分页规则去获取各列表页的分页 url,也会保存到任务表。通过列表页的分页 url 可以把所有的详情页 url 拿到。

    最后就是用详情页 url 去采集标题和正文了,同时也要根据规则里的详情页分页规则判断是否需要去递归获取下一页的标题和正文。最后把详情页的标题和正文入库。

    今天一口气把递归采集分页给实现了,这个相当给力。

    其实代码量不大,不到 300 行代码,目前基本就用了一个文件完成所有功能(为方便先用的 artisan command 模式)。代码太拙,就不献丑了。本来打算贴个任务执行的截图,不过没有图床,暂时就不弄了。

    我现在写的三个规则是针对的故事、笑话类网站。因为实在不知道还有哪些更有意思的内容了。

    很想做网站,求推荐适合做哪些内容?后面可能会考虑做一些内容相关的小程序。

    ebingtel
        1
    ebingtel  
       2020-06-24 09:07:47 +08:00
    其实都可以……只要爬得多 就算都是垃圾 引擎也会多看你一眼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2666 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 03:35 · PVG 11:35 · LAX 19:35 · JFK 22:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.