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

2019-12-25 22:53:28 +08:00
 crella
请教一个做爬虫来爬取论坛帖子多层楼的问题。

之前做了一个简单爬取某招聘网站上的招工信息的爬虫,初步了解了如何用浏览器查看请求头、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 指教,或者说一下已有的案例链接。谢谢。
969 次点击
所在节点    程序员
1 条回复
crella
2019-12-25 23:15:53 +08:00
突然明白了,数据库表格的每个列存 json,然后 json 套 json,就好了……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/632358

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX