V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
crella
V2EX  ›  程序员

做爬虫来爬取论坛帖子多层楼的问题

  •  
  •   crella · Dec 25, 2019 via Android · 1228 views
    This topic created in 2319 days ago, the information mentioned may be changed or developed.
    请教一个做爬虫来爬取论坛帖子多层楼的问题。

    之前做了一个简单爬取某招聘网站上的招工信息的爬虫,初步了解了如何用浏览器查看请求头、curl 基本命令、sqlite 语句和事务。

    现在出于兴趣,想爬取某社区的热点帖子。特点:

    1、只收录文字信息和 html 代码,不收录图片等媒体。打算用 sqlite 应付一下,也愿意用 postgresql。

    2、不少帖子讨论敏感话题,经常被删帖、删楼,或者楼主或层主更改已有的回复。我希望我的爬虫能自动比对每层楼的文字,当回复被更改时,存储旧的回复和新的回复。不知道应该怎样设计数据库的表结构。

    3、对于去除重复记录的问题。

    在之前那个关于招工信息的爬虫,我设定的逻辑是:对于新爬取完的存在一个数组里面的多条信息(现在基本是一次爬取 6 万条),逐条在 sql 里面 select where,检查返回的结果是否为空。若不为空,则把这条信息标记为待更新,存进另一个数组。完成上面的检查后,打开 sql 事务,对上面所有待更新的信息执行 sql 相关的 update where 语句,然后提交 sql 事务。

    这个处理流程可以改善吗?比如打开 sql 事务,先 select where 完所有要检查的信息,比对完之后存进新数组,再提交 sql 事务。然后打开 sql 事务,update where 所有新信息,再提交 sql 事务。这样是否可行呢?因为对在脚本里面一次性执行多个 sql 语句不是很放心。

    请各位 58 指教,或者说一下已有的案例链接。谢谢。
    crella
        1
    crella  
    OP
       Dec 25, 2019
    突然明白了,数据库表格的每个列存 json,然后 json 套 json,就好了……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   925 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:22 · PVG 07:22 · LAX 16:22 · JFK 19:22
    ♥ Do have faith in what you're doing.