这是一个创建于 1785 天前的主题,其中的信息可能已经有所发展或是发生改变。
请教一个做爬虫来爬取论坛帖子多层楼的问题。
之前做了一个简单爬取某招聘网站上的招工信息的爬虫,初步了解了如何用浏览器查看请求头、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 指教,或者说一下已有的案例链接。谢谢。
|
|
1
crella 2019-12-25 23:15:53 +08:00
突然明白了,数据库表格的每个列存 json,然后 json 套 json,就好了……
|