crack5 发表于 2020-7-22 14:48

开源 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))
.计次循环尾 ()






附上源码:





alicc 发表于 2020-7-26 06:27

crack5 发表于 2020-7-25 20:54
你按 F12 然后 F5刷新页面就出来了

用谷歌和火狐浏览器 都这样 - -显示不出楼主那种效果内容反复搜索没图片地址(用那个正则匹配工具也是一样),但是可以用楼主的成品。
应该是哪里设置没对 - -   楼主闲的时候可以看看嘛 捣鼓了2天 {:1_925:}


内容为:

crack5 发表于 2020-7-22 15:08

魔道书生 发表于 2020-7-22 15:07
大佬出一个python的正则就好了                        我一直不知道python为啥就爬虫强了?
python在论坛上有哟https://www.52pojie.cn/thread-1201431-1-1.html 你可以去看看

crack5 发表于 2020-7-22 14:55

若不会使用工具可以去看看 作者出的 工具使用教程https://www.52pojie.cn/thread-1211965-1-1.html

魔道书生 发表于 2020-7-22 15:07

大佬出一个python的正则就好了                        我一直不知道python为啥就爬虫强了?

wangshang 发表于 2020-7-22 15:40

谢谢分享

JIAN_ 发表于 2020-7-22 15:41

厉害了!

pyms 发表于 2020-7-22 15:52

不错的教程

慕容紫英丶 发表于 2020-7-22 16:08

谢谢分享{:1_893:}

zhaji666 发表于 2020-7-22 16:16

谢谢分享嘻嘻嘻

gujiu666 发表于 2020-7-22 16:31

感谢分享
页: [1] 2 3 4 5 6 7
查看完整版本: 开源 wallhaven ToP高清壁纸分析 过程及编写易语言编写爬虫 带源码