本帖最后由 crack5 于 2020-7-22 15:01 编辑
网站:https://wallhaven.cc/
用到工具: https://www.52pojie.cn/thread-1211429-1-1.html
及 Google Chrome 浏览器
1.先到网页选择Top 大同小异
如果是 按下F12 Google Chrome 浏览器 然后开始分析
也可以用 论坛大佬的正则匹配工具
3.随机点开一个主页下的 一个网页地址 然后去看一下页面地址
4.拿到地址后可以直接在 浏览器搜索或在正则匹配工具搜索 https://wallhaven.cc/w/3911w9
我选择浏览器搜索 CTRL+F
可以看到 可以看到这个是第一张图的页面地址
5.然后用正则匹配工具去进行匹配
[Asm] 纯文本查看 复制代码 <a class="preview" target="_blank"></a>
前关键字 <a class="preview" href=" || 后关键字 "
匹配到的结果
然后点击工具的生成代码
接下来进行代码编写
[Asm] 纯文本查看 复制代码 .版本 2
.支持库 spec
.子程序 取页图片地址, , , 此代码由CN911正则生成
.参数 页数, 整数型
.局部变量 被搜索的文本, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
被搜索的文本 = 网页_访问S (“https://wallhaven.cc/toplist?page=” + 到文本 (页数))
.如果真 (被搜索的文本 = “”)
信息框 (“访问失败”, 0, , )
返回 ()
.如果真结束
正则.创建 (“<a class=#引号preview#引号 href=#引号(.*?)#引号”, 被搜索的文本, 假, 真, 真, 真)
.计次循环首 (正则.取匹配数量 (), i)
调试输出 (正则.取子匹配文本 (i, 1, ))
.计次循环尾 ()
6.然后再去分析图片的源地址 我随便用一个去 分析 https://wallhaven.cc/w/3911w9
CTRL+F .JPG
<img id="wallpaper" src="https://w.wallhaven.cc/full/39/wallhaven-3911w9.jpg" alt="General 256
再回到刚才的步骤 用工具去访问图片的地址 https://wallhaven.cc/w/3911w9
前关键字 <img id="wallpaper" src=" || 后关键字 "
得到图片地址后可以我们就可以开始写爬虫了 点击工具生成 代码
[Asm] 纯文本查看 复制代码 .版本 2
.支持库 spec
.子程序 解析图片地址
.参数 url, 文本型
.局部变量 被搜索的文本, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
被搜索的文本 = 网页_访问S (url)
正则.创建 (“<img id=#引号wallpaper#引号 src=#引号(.*?)#引号”, 被搜索的文本, 假, 真, 真, 真)
.计次循环首 (正则.取匹配数量 (), i)
调试输出 (正则.取子匹配文本 (i, 1, ))
.计次循环尾 ()
再用正则匹配一下 文件名和格式
最后直优化封装一下代码即可
[Asm] 纯文本查看 复制代码 .版本 2
.支持库 shell
.支持库 internet
.子程序 取文件名并下载, , , 此代码由CN911正则生成
.参数 src, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
正则.创建 (“[^/]+(?!.*/)”, src, 假, 假, 假, 假)
.计次循环首 (正则.取匹配数量 (), i)
写到文件 (取特定目录 (3) + “\test\” + 正则.取匹配文本 (i), HTTP读文件 (src))
.计次循环尾 ()
测试结果
代码:
[Asm] 纯文本查看 复制代码 .版本 2
.支持库 EThread
.支持库 shell
.支持库 internet
.程序集 窗口程序集_启动窗口
.子程序 _按钮1_被单击
启动线程 (&测试, , )
.子程序 测试
.局部变量 i, 整数型
.变量循环首 (到整数 (编辑框2.内容), 到整数 (编辑框3.内容), 1, i)
取页图片地址 (i)
.变量循环尾 ()
.子程序 取页图片地址, , , 此代码由CN911正则生成
.参数 页数, 整数型
.局部变量 被搜索的文本, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
被搜索的文本 = 网页_访问S (“https://wallhaven.cc/toplist?page=” + 到文本 (页数))
.如果真 (被搜索的文本 = “”)
信息框 (“访问失败”, 0, , )
返回 ()
.如果真结束
正则.创建 (“<a class=#引号preview#引号 href=#引号(.*?)#引号”, 被搜索的文本, 假, 真, 真, 真)
.计次循环首 (正则.取匹配数量 (), i)
解析图片地址 (正则.取子匹配文本 (i, 1, ))
.计次循环尾 ()
.子程序 解析图片地址
.参数 url, 文本型
.局部变量 被搜索的文本, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
被搜索的文本 = 网页_访问S (url)
正则.创建 (“<img id=#引号wallpaper#引号 src=#引号(.*?)#引号”, 被搜索的文本, 假, 真, 真, 真)
.计次循环首 (正则.取匹配数量 (), i)
编辑框1.加入文本 (“正在下载:” + url + #换行符)
取文件名并下载 (正则.取子匹配文本 (i, 1, ))
.计次循环尾 ()
.子程序 取文件名并下载, , , 此代码由CN911正则生成
.参数 src, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
正则.创建 (“[^/]+(?!.*/)”, src, 假, 假, 假, 假)
.计次循环首 (正则.取匹配数量 (), i)
写到文件 (取特定目录 (3) + “\test\” + 正则.取匹配文本 (i), HTTP读文件 (src))
.计次循环尾 ()
附上源码:
wallhaven爬虫源码.rar
(204.87 KB, 下载次数: 44)
wallhaven爬虫工具.rar
(361.94 KB, 下载次数: 143)
|