Delphi编程之爬取贴吧图片最终版
接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力。
主界面设计如下,包含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。
Delphi编程之爬取贴吧图片最终版的更多相关文章
- Delphi编程之爬取贴吧帖子图片
大家如果经常在逛贴吧的时候,会看到很多帖子里有很多好看的图片,都想下载下来留存的话,常规的方法只能一张一张点击右键,然后图片另存为,这样的方法对于图片少的来说没什么,要是图片超过100张,200张,那 ...
- Delphi编程之爬取贴吧多页帖子图片
接着上一篇文章说一下我们如何爬取多页帖子的图片. 第一步,还是随便找个贴吧,这次我们就找图片相对较少的射雕英雄传吧. 把页面拉到最底下,在页码区域单击右键,选择检查. 在这里我们看到了页码的代码区域, ...
- 用WebCollector爬取站点的图片
用WebCollector爬取整站图片,仅仅须要遍历整站页面.然后将URL为.jpg.gif的页面(文件)保存到本地就可以. 比如我们爬取一个美食站点,获取里面全部的图片: import cn.edu ...
- python 爬虫入门----案例爬取上海租房图片
前言 对于一个net开发这爬虫真真的以前没有写过.这段时间学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup. ...
- Python-王者荣耀自动刷金币+爬取英雄信息+图片
前提:本文主要功能是 1.用python代刷王者荣耀金币 2.爬取英雄信息 3.爬取王者荣耀图片之类的. (全部免费附加源代码) 思路:第一个功能是在基于去年自动刷跳一跳python代码上面弄的,思路 ...
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- 第一个nodejs爬虫:爬取豆瓣电影图片
第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require( ...
- 用scrapy爬取搜狗Lofter图片
用scrapy爬取搜狗Lofter图片 # -*- coding: utf-8 -*- import json import scrapy from scrapy.http import Reques ...
- scrapy爬虫爬取小姐姐图片(不羞涩)
这个爬虫主要学习scrapy的item Pipeline 是时候搬出这张图了: 当我们要使用item Pipeline的时候,要现在settings里面取消这几行的注释 我们可以自定义Item Pip ...
随机推荐
- SWUST OJ(1101)
顺序表中的数据的循环移动 #include <iostream> #include <cstdlib> using namespace std; int main() { in ...
- WinDbg调试 C# dmp
WinDbg C#调试 打开windbg,加载需要调试的c# dmp. 设置好sympath等. 查看蹦会的c#主进程依赖的.Net环境 可以查看进程名对应的*.config文件. 开始加载符号,假设 ...
- 983. Minimum Cost For Tickets
网址:https://leetcode.com/problems/minimum-cost-for-tickets/ 参考:https://leetcode.com/problems/minimum- ...
- [cf contest246] E - Blood Cousins Return
[cf contest246] E - Blood Cousins Return time limit per test 3 seconds memory limit per test 256 meg ...
- java Data、String、Long三种日期类型之间的相互转换
java Data.String.Long三种日期类型之间的相互转换 // date类型转换为String类型 // formatType格式为yyyy-MM-dd HH:mm:ss// ...
- System.out.print()执行顺序
今天使用递归调用计算的时候发现一个很奇怪的问题 代码: public class practice20 { public static double nStep(double N) { if (N&l ...
- java使用SimpleDateFormat实现字符串和日期的相互转换
public class TimeTwo { public static void main(String[] args) throws ParseException{ String s = &quo ...
- Resources$NotFoundException资源文件没有找到
错误类型: android.content.res.Resources$NotFoundException: String resource ID #0x1at android.content.res ...
- [BZOJ1596]电话网络
Problem 给你一棵树,可以在每个点上选择造塔或不造,每座塔可以覆盖这个节点和相邻节点,问覆盖整棵树的最小塔数. Solution 看到这道题的第一眼,我就觉得是一题贪心题,但看见出题的时候分类在 ...
- python学习------socket编程
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...