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 ...
随机推荐
- C语言缓冲区
定义 缓冲区是内存空间的一部分,用于缓冲输入或输出的数据.根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 类型 缓冲区分为三种类型:全缓冲.行缓冲和不带缓冲. 1.全缓冲 在这种情况 ...
- MVC架构模式详细说明
一.简介: 架构模式是一个通用的.可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题.架构模式与软件设计模式类似,但具有更广泛的范围. 模型-视图-控制器模式,也称为MVC模式(Mod ...
- 2019ccpc-HN省赛-A/C/F/I
A.最大下降矩阵 时间限制: 1 Sec 内存限制: 512 MB提交: 508 解决: 107[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 我们称一个矩阵是下降矩阵,当且仅当, ...
- 从零开始搭建Webpack+react框架
1.下载node.js Node.js官网下载 , 安装: 安装成功后在控制台输入node -v 可查看当前版本: $ node -v v10.15.0 输入npm -v查看npm版本: $ npm ...
- 【Python】Part1 应用1-Netcat
01 简介 netcat的主要功能是通过tcp或udp协议传输读写数据. 下面代码用python编写了tcp客户端,服务端,从而实现上传文件,本地执行命令,反弹shell三种功能. 02 代码 imp ...
- Ubuntu安装之python开发
Ubuntu安装之python开发 什么??公司要用Ubuntu(乌班图)?不会用??怎么进行python开发??? 乌班图操作系统下载地址:http://releases.ubuntu.com/ ...
- 记录前台js判断,如果为空,給议空的占位
这个主要是根据所有的值,按顺序输出,如果没有值,就给予空的占位, //页面加载的时候获取左边和右边的所有游客id var array_left_start = new Array(); ...
- webpack 大概
entry output loader: rules: [ {test:匹配文件格式, use: 使用的loader}, {test:匹配文件格式, use: 使用的loader}, ...//l ...
- STL中set的使用方法
第一次想认真地学学set,是在我做一题treap的时候产生的念头.(HNOI2004 宠物收养场,洛谷P2286) 嗯,虽然学过一丢丢的treap和splay,但是这编程复杂度貌似有点高…… 无奈翻开 ...
- 在eclispe上git 代码滚回
1.项目 - 鼠标右键 - team - show in history: 2.history窗口 - 选择需要回滚到的版本 - reset - hard:3.项目 - 鼠标右键 - team - p ...