基于百度图片搜索的vscode插件——超级鼓励师
简介
超级鼓励师是一款vscode插件,基于百度图片搜索服务,根据用户设置的关键字获取图片。并通过webview展示给用户。缓解程序猿/媛工作压力,给予你爱的鼓励。
vscode 插件市场搜索超级鼓励师立即使用
源码地址:github.com/weiweiwei25…
效果图:
广告做完了 说正事:P
百度搜索请求解析
百度图片请求 打开百度图片网站或在搜索页面切换请求可以在开发者工具,network看到xhr请求 image.baidu.com/search/acjs…
由于存在跨域限制,所以前端无法直接通过GET请求获取返回值。而vscode自带node环境,通过服务端访问就避免了跨域问题。通过node服务将获取的图片保存到本地,可以实现在没有网络的情况下工作。
部分请求参数解析:
- queryword和word 为搜索关键字 主要需要encodeURI编码
- offset 偏移量 从第几张还是获取
- rn 获取图片数量
- hd 是否获取高清
- lm 6为获取动图 1为获取正常 图片
其他的参数可通过不断更改网站参数,对比url自己探索。
返回参数主要看data,它包含图片的各种信息:
其中hoverURL,middleURL,thumbURL的值很多时候是相同的,可以选取其一。
注意: 这个地址是预览图片地址,图片真正的地址保存在objURL中,经过百度加密过。后面有详细说明。
实例数据:objURL: "ippr_z2C$qAzdH3FAzdH3Ft42n_z&e3B17tpwg2_z&e3Bv54AzdH3F7rs5w1fAzdH3Ftpj4AzdH3Fda8mamAzdH3Fd9AzdH3Fda8mamd9da9bc8_pQgti_z&e3B3rj2"
- 获取百度动图
当通过百度搜索动图的时候,你会发现很多图并不动,只有悬浮时才会加载真正的动图。通过查看data.thumbUrl的图片发现是静止的,而且资源很小。可以进一步证实。
探索之路开始:
- 通过悬浮功能,查看dom变化,发现image src发生改变,外层li增加class hactive。
- 全局搜索hactive,sources只可以单文件搜索(也可能我见识浅陋)有由于百度加载文件较多,这样搜索会死人的。可以通过network ctrl+F从所以通过网络获取资源中搜索。这样就相当与全局搜索。如果有需要可以根据资源路径找到源码,断点调试。
- 找到 data-objURL属性
- 找到 objURL 属性 解析后
百度检索 存在没有与时俱进的问题 百度返回的JSON数据解析返回的objURL
再次搜索映射关键字,找到uncompile源码 授之以鱼不如授之以渔 再也不用担心百度修改编码了
通过解码后的objURL就可以获取真实地址。
[测试地址](github.com/weiweiwei25…
自然时间鼓励
超级鼓励师支持自然时间(整点,半点)鼓励。采用node-cron 详情请参考最后链接
vscode 插件开发注意点
- 监控属性变化
vscode.workspace.onDidChangeConfiguration(function(event) {Promise.resolve(event.affectsConfiguration('superencourager.type')).then(data => {if (data) {//true 代表这个属性已经被修改timeMeter = undefinedinitTimer(context)}}).then(undefined, err => {console.error('err', err)})})
复制代码
- output输出
let out;
if (!out) {out = vscode.window.createOutputChannel('super encourager')out.show()}out.appendLine(msg)
复制代码
- 属性类型设置为number 但是在window下读取是 string 记得转型。
有些入门博客也不错,请看参考链接
插件基本都是开源的,有啥需要的功能直接去找已经实现该功能的插件源码就行。我参考了很多LeetCode的代码
插件开发注意事项
参考链接
制作爬虫爬取百度图片
百度返回的JSON数据解析返回的objURL
node-cron github地址
vscode 扩展开发从入门到颈椎病康复
VSCode插件开发全攻略
vscode-extentions 官网
LeetCode github地址
转载于:https://juejin.im/post/5d4d138951882575595c44e0
基于百度图片搜索的vscode插件——超级鼓励师相关推荐
- Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用
1.建立网络连接的基本方式 Android中建立网络连接最主要的方式是利用HttpURLConnection,示例如下: public class HttpUtil {public static by ...
- 百度图片搜索搜出大量色情图片,原因不明
访客Oculi同学在百度图片搜索上搜索关键字"gif"与"jpg"时发现,返回的搜索结果中出现了大量的色情图片. 不知百度一向宣称的过滤技术,在此时为何不能发挥 ...
- Python爬取百度图片搜索结果
爬取百度图片搜索的图片,我们先需要分析其访问 URL,我们在搜索页面,比如搜索 "abc" ,打开 F12 调试,下拉结果页面页,查看网络请求,在其中我们可以找到这样一个请求 ht ...
- 如何利用百度图片搜索进行引流?原理是怎样的?
究竟百度图片搜索如何运作?其实它的运作原理与搜索引擎很类似,一样会经过以下三个步骤: 爬取 Crawling 索引 Indexing 排序 Ranking 百度图片蜘蛛会先去爬取网络上各个网站的图片, ...
- 寻找百度图片搜索接口--three
我是怎么破解他的objurl的呢,其实怎么破解是还是百度自己告诉我的...你想啊,他为啥能在开始我看到的那个js 中显示成正常的url地址呢?为什么url中的objurl 知识编码了一下 : / ...
- python爬虫百度图片搜索_python 爬虫百度图片之列表图
一.爬虫准备 语言:python 浏览器:google chrome 工具:request模块 首先我们在百度图片搜索页面输入需要搜索的关键词(比如:明星)页面结果如下 image.png 按F12进 ...
- 基于百度翻译API的node插件
基于百度翻译API的node插件 背景 做过国际化的项目就明白要把每处的文案翻译成不同的语言版本,如果只是一点点,自己去百度上翻译成对应语言版本,copy过来就ok了,但是如果这个项目文案特别多的话, ...
- android网络图片搜索——基于百度图片搜索引擎
最近无聊看了一下百度的图片搜索接口,于是想着利用这些接口写了个android版的图片搜索引擎.本来不打算写的,就当纪念一下晴雪吧.. 实现效果图 主要是利用百度的图片搜索引擎返回的代码进行解 ...
- 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)
源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...
最新文章
- Csharp: FreeTextbox 编辑器控件运行时错误: 'FTB_ResizeGalleryArea' 未定义
- WPF中实现文件夹对话框(OpenFileDialog in WPF)
- [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识
- 嵌入式Linux系统编程学习之二十八线程的等待退出
- Android深入浅出系列之Android开发环境搭建—SDK(三)
- java获取inputstream_Java:我怎样才能从inputStream获取编码?
- AD16修改规则加宽电源线与地线
- 前后端分离项目session跨域失效的解决方案
- Axure 8.1.0.3382 激活码(转)
- 【病毒查杀】CAD杀毒方法
- WPS复选框显示太阳问题解决方法
- win10休眠_Win10关机后一动键盘就开机怎么解决
- Operator学习笔记
- 台式计算机能不能安装蓝牙驱动,台式电脑蓝牙驱动安装失败怎么办?台式电脑蓝牙驱动安装失败解决办法...
- Lightoj1009 Back to Underworld(带权并查集)
- java 计算年龄_Java根据日期计算年龄——精确到天
- 微信用户绑定java实例_第三方网站微信登录java代码实现
- 简单的rpg任务制作
- p2p断开的两种情况:WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY(4)和WLAN_REASON_DEAUTH_LEAVING(3)
- 我的三年Android开发总结之回忆过去