接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力。
主界面设计如下,包含3个labelededit,3个button,1个memo,1个stringgrid,2个label,1个progressbar,大家可以根据实际情况自行调整。
主窗体界面
网页分析,在前面2篇文章也已经说给大家了,下面我们来看一下具体实现的代码。
程序打开,只有输入贴吧名和打开贴吧这2个控件的Enabled是True;
全局变量和UTF-8转换函数:
窗体的oncreate:
打开贴吧button:
该代码是为了检测贴吧是否存在
以label来显示贴吧状态
获取所有帖子地址button:
此处执行后,在stringgrid显示出所有需要获取的帖子链接和帖子名字
此处以stringgrid来显示地址和帖子名字
双击stringgrid:
双击事件代码
输入帖子页码数量后,双击stringgrid选中行,下方显示出页码范围内所有图片地址
下载图片button:
点击开始下载图片到指定文件夹
下载过程中:
进度条显示下载进度
下载完成后:
到这里就下载完成了,可以自定义下载页数。
总结:
第一天:通过初步对帖子源码的分析,再加上一些字符处理,我们用循环下载了贴子当页楼层的所有图片。
第二天:通过对贴吧源码分析,找到页码的规律,我们达到了能获得贴吧多页帖子链接的目的。
第三天:通过第一和第二天方法的结合,加上delphi控件及循环语句的配合使用,实现了下载贴吧多页帖子图片的功能。
最后,当然了,如果想把程序做的更强大,具有更强的爬取和下载能力,是需要加上多线程应用的,同时,用函数封装的方式和dll技术的方式,可以让代码更加容易维护,软件更容易更新。
这里是源码的下载地址:https://pan.baidu.com/s/1bpiVGv1
Delphi的版本是Delphi XE10.1 Berlin。