开源 wallhaven ToP高清壁纸分析 过程及编写易语言编写爬虫 带源码
本帖最后由 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.然后用正则匹配工具去进行匹配
<a class="preview"target="_blank"></a>
前关键字 <a class="preview" href="|| 后关键字 "
匹配到的结果
然后点击工具的生成代码
接下来进行代码编写
.版本 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="|| 后关键字 "
得到图片地址后可以我们就可以开始写爬虫了 点击工具生成 代码
.版本 2
.支持库 spec
.子程序 解析图片地址
.参数 url, 文本型
.局部变量 被搜索的文本, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
被搜索的文本 = 网页_访问S (url)
正则.创建 (“<img id=#引号wallpaper#引号 src=#引号(.*?)#引号”, 被搜索的文本, 假, 真, 真, 真)
.计次循环首 (正则.取匹配数量 (), i)
调试输出 (正则.取子匹配文本 (i, 1, ))
.计次循环尾 ()
再用正则匹配一下 文件名和格式
最后直优化封装一下代码即可
.版本 2
.支持库 shell
.支持库 internet
.子程序 取文件名并下载, , , 此代码由CN911正则生成
.参数 src, 文本型
.局部变量 正则, 正则表达式类, , , jy模块的正则表达式类
.局部变量 i, 整数型, , , 计次变量
正则.创建 (“[^/]+(?!.*/)”, src, 假, 假, 假, 假)
.计次循环首 (正则.取匹配数量 (), i)
写到文件 (取特定目录 (3) + “\test\” + 正则.取匹配文本 (i), HTTP读文件 (src))
.计次循环尾 ()
测试结果
代码:
.版本 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))
.计次循环尾 ()
附上源码:
crack5 发表于 2020-7-25 20:54
你按 F12 然后 F5刷新页面就出来了
用谷歌和火狐浏览器 都这样 - -显示不出楼主那种效果内容反复搜索没图片地址(用那个正则匹配工具也是一样),但是可以用楼主的成品。
应该是哪里设置没对 - - 楼主闲的时候可以看看嘛 捣鼓了2天 {:1_925:}
内容为:
魔道书生 发表于 2020-7-22 15:07
大佬出一个python的正则就好了 我一直不知道python为啥就爬虫强了?
python在论坛上有哟https://www.52pojie.cn/thread-1201431-1-1.html 你可以去看看 若不会使用工具可以去看看 作者出的 工具使用教程https://www.52pojie.cn/thread-1211965-1-1.html 大佬出一个python的正则就好了 我一直不知道python为啥就爬虫强了? 谢谢分享 厉害了! 不错的教程 谢谢分享{:1_893:} 谢谢分享嘻嘻嘻 感谢分享