有个编程问题,我在爬取一个相册专辑. 里面目前有 100 张图片,图片 id 从 100 到 1,最近的 id 为 100,最旧的 id 为 1 相册内容会变动,图片 id 会增加到 110,120 等等 每次爬取可能只爬取了 10 张(比如从 id100 爬取到了 id90) 现在是把爬取过的图片 id 入库了,每次下载前查询下是否爬过 我该怎么记录能不少爬取数据?相册更新了该怎么处理?
我想到的是这样解决的: 1.当专辑第一次运行时,记录初始图片 id(100)和当前图片 id,同时标记专辑未爬完(是否结束为否) 2. 爬数据...每次结束时更新当前图片 id 为当前的 id ,意思下次从这里开始 3. 第二次运行时,如果是否结束为否,就从第二步中的当前图片 id 开始向后爬,直到把是否结束变成是 4. 如果结束了,从头开始爬,爬取时再更新当前图片 id 字段 5.当前图片 id = 初始图片 id 时,把初始图片 id 更新成最新的,专辑结束
关键就是是否结束这个字段了,为否时爬取旧数据,当旧数据爬完时反过来爬新数据 后续再运行就都是爬新数据了
表结构: 相册 id | 初始图片 id | 当前图片 id | 是否结束
请问还有更好的办法不
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.