PHP-目前想做一个抓取书籍程序,请大家提供一个方案?
同时开50个进程,只抓取新增的章节和纯文字的文章,只抓取一个网站的文章,再保留几个网站作为备选。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(3)
1.多进程的话你可以考虑用shell和pcntl_fork()结合起来实现,用计划任务控制shell每30分钟执行一次。
2.你可以事先保存起来每本书籍的多个网站的list页,用curl抓取页面内容,然后分析出每个list页都有多少张新章节,选可更新章节最多的抓取,其他的list页有多少可更新章节也记录下来,用来备选,至于你只要纯文字的文章,你可以获得该页面的文字数若大于1200个汉字认定为纯文字的文章,其他的认定为图片,这你可以调试时再调整。
3.最后就是数据存储了,第一个表存储书的基本信息包括书的id、书名、书的最新章节(每次抓取后更新)、多个网站list页的地址及可更新章节的数目(每次抓取后更新);第二章表存每本书各个章节的内容,包括书的id,章节号、章节标题、章节内容;第三张表用作抓取控制包括书的id,书的最新章节(每次抓取后更新),上次的抓取时间、抓取间隔、抓取标志位(为了当这本书正在抓取时,就不开新的进程抓取了)。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我转一篇淘宝文章《快速构建实时抓取集群》,有时间可以研究下。文章介绍了一个分布式实时抓取架构模型。系统主要用到Scrapy(python抓取工具包),mysql+redis(存储)。
mysql用来存放抓取的网页,为后续的抽取和处理;redis做了几种数据结构(抓取队列,链接库,已抓取集合)。