Delphi编程之爬取贴吧帖子图片
大家如果经常在逛贴吧的时候,会看到很多帖子里有很多好看的图片,都想下载下来留存的话,常规的方法只能一张一张点击右键,然后图片另存为,这样的方法对于图片少的来说没什么,要是图片超过100张,200张,那可就痛苦了,今天就为大家介绍一下如何利用delphi去爬取贴吧帖子的图片。
delphi的爬虫思考
第一步,打开任意一个贴吧,比如图片吧。
打开图片吧
第二步,在贴吧里随意找个有很多图片的帖子。
有很多图片的帖子
第三步,在任意一层有图片的楼层,右键单击图片,选择检查。
右键单击检查
第四步,在页面显示出的源码界面,会看到被选中的代码,此行代码就是图片的下载地址了。
看到源码里的地址
第六步,然后我们复制这个地址前面的一段代码。这个代码就是所有楼层图片在网页源码中的标识型前缀,可以作为图片的识别标识。
复制这段代码
第七步,打开delphi,新建一个VCL Application Form,添加一个labelededit控件,3个button控件,2个memo控件,1个idhttp控件,1个IdSSLIOHandlerSocketOpenSSL控件,如下图,排列方式可以根据自己喜好自行调整。
程序主界面
第八步,主要代码在后面三个button里写。如下:
获取源码button:
图片地址button:
保存到文件夹button:
说明:
①对https的get,是需要有2个动态链接库支持的,分别是libeay32.dll和ssleay32.dll,把最新版本的这2个文件放到编译好的程序同文件夹下即可。
②Idhttp的IOhandler别忘了设置为IdSSLIOHandlerSocketOpenSSL控件。
③程序代码已经可以简单地实现下载帖子当前页的所有楼层图片。
下面是运行效果
程序运行效果
下载完成的图片
总结:通过以上的方式可以完成任意帖子当前页的图片下载,那么问题来了,如果我想下载好多页的图片怎么办呢,大家可以根据我前面几步的网页分析方式,去找到打开页码的源码,在delphi中执行循环打开页面,并将页面地址赋值到idhttp的get里,接下来水到渠成,这是我自己的爬取数据的思路,这里面的步骤都是可以放到一起一键完成,代码也是可以精简的,重要的是思路明确,代码优化和功能增强可以慢慢实现。
虽说目前Python爬取网页数据比较火,但是delphi爬取数据也是毫无压力,我技术有限,就抛砖引玉了。
Delphi编程之爬取贴吧帖子图片的更多相关文章
- Delphi编程之爬取贴吧多页帖子图片
接着上一篇文章说一下我们如何爬取多页帖子的图片. 第一步,还是随便找个贴吧,这次我们就找图片相对较少的射雕英雄传吧. 把页面拉到最底下,在页码区域单击右键,选择检查. 在这里我们看到了页码的代码区域, ...
- Delphi编程之爬取贴吧图片最终版
接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力. 主界面设计如下,包含3个labelededit,3个button,1个memo,1个str ...
- python爬取某个网页的图片-如百度贴吧
python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...
- python爬取某个网站的图片并保存到本地
python爬取某个网站的图片并保存到本地 #coding:utf- import urllib import re import sys reload(sys) sys.setdefaultenco ...
- python网络爬虫之解析网页的正则表达式(爬取4k动漫图片)[三]
前言 hello,大家好 本章可是一个重中之重,因为我们今天是要爬取一个图片而不是一个网页或是一个json 所以我们也就不用用到selenium模块了,当然有兴趣的同学也一样可以使用selenium去 ...
- Python 爬取陈都灵百度图片
Python 爬取陈都灵百度图片 标签(空格分隔): 随笔 今天意外发现了自己以前写的一篇爬虫脚本,爬取的是我的女神陈都灵,尝试运行了一下发现居然还能用.故把脚本贴出来分享一下. import req ...
- C#爬取微博文字、图片、视频(不使用Cookie)
前两天在网上偶然看到一个大佬OmegaXYZ写的文章,Python爬取微博文字与图片(不使用Cookie) 于是就心血来潮,顺手撸一个C#版本的. 其实原理也很简单,现在网上大多数版本都需要Cooki ...
- 使用BeautifulSoup自动爬取微信公众号图片
爬取微信分享的图片,根据不同的页面自行修改,使用BeautifulSoup爬取,自行格局HTML修改要爬取图片的位置 import re import time import requests imp ...
- Python爬取 | 唯美女生图片
这里只是代码展示,且复制后不能直接运行,需要配置一些设置才行,具体请查看下方链接介绍: Python爬取 | 唯美女生图片 from selenium import webdriver from fa ...
随机推荐
- 6354 Everything Has Changed
Edward is a worker for Aluminum Cyclic Machinery. His work is operating mechanical arms to cut out d ...
- 【密码技术】Part 4 SSL/TLS
01 SSL/TLS基本概念 02 TLS协议流程图
- lumion的物体系统5.30
1.“自然"点击这棵树.可以打开自然库.不同的植物分类有很多页数. 选择一棵树,自动返回页面单击鼠标左键可以种植这个树.成排种树:点击”人群安置“点击我们想安置的起点.再点击终点.用鼠标右键 ...
- 使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示,键盘输入无法显示,解决方法如下. 在启动octave之前,输入这两个命令: export GTK_MODULES=gai ...
- Spring、SpringMVC区别
1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合. 2). AOP编程的 ...
- 泛型的上下边界 : ? extends E 与 ? super T
public class Problem { public static void main(String[] args) { List<? extends A> list; List&l ...
- MapReduce实现Apriori算法
Apiroi算法在Hadoop MapReduce上的实现 输入格式: 一行为一个Bucket 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 34 36 38 ...
- Python 的第一个小程序
F盘 新建文本文档 hello.txt 内容为: print("hello world! hello 2018!"); 打开CMD cd c:\ ...
- mysql 修改表字段长度
方案一: change ALTER TABLE t1 CHANGE a a VARCHAR(); change 可以用来更改字段名称和类型 ALTER TABLE table_name CHANGE ...
- python之生成器与迭代器
生成器 列表生成式:li = [i for i in range(10)] 将列表生成式中[]换成()即为生成器generator 生成器保存的对象不是具体的数,而是一种算法,一种推导式,调用__ne ...