【爬虫获取数据】&【无服务器软件自更新】

您所在的位置:网站首页 蓝奏爬虫 【爬虫获取数据】&【无服务器软件自更新】

【爬虫获取数据】&【无服务器软件自更新】

2024-07-17 22:53| 来源: 网络整理| 查看: 265

自制工具   翰华Box:https://hanhuabox.lanzous.com/b00zjq9uf

翰华Box - 开发日志:https://blog.csdn.net/qq_41517936/article/details/106409456

目录

1、两种获取网站数据的途径

 1.1、网页源代码直接获取数据

1.2、发送get、post请求获取json数据

1.2.1、幕布:https://mubu.com/doc/pKtGTPIH10

1.2.2、蓝奏云https://hanhuabox.lanzous.com/b00zjq9uf

1.2.3、酷我音乐:http://www.kuwo.cn/search/list?key=周杰伦

2、两种网页访问的Windows API

这里举3个网站的例子,也是我目前正在用的。

1、幕布 - 写笔记的网站,可用于软件自更新,爬取笔记内容,获得新版本的版本号等;

2、蓝奏云网盘 - 存放新版本程序,用于软件自更新,也可以获取新版本的版本号等;

3、酷我音乐 - 获取歌曲的所有信息。

如果以下内容有说错的地方,记得留言,我好改正一下,毕竟我也是新手。

1、两种获取网站数据的途径  1.1、网页源代码直接获取数据

这个没什么好说的,打开目标网页,右键查看网页源代码,页面中的数据都在源代码中,直接正则提取即可,如果源代码中找不到数据,那么就看1.2了,这里我用蓝奏云展示下。

目标网址:翰华Box:https://hanhuabox.lanzous.com/b00zjq9uf,获取版本相关信息。

我想获取  话|说 的内容,首先看网页源代码,一看,有我想要的数据,那直接正则就完事了!

话说hanhuabox版本:1.0.8¥强制更新:1.0.3¥更新时间:2020年6月29日¥更新地址:lanzouyun https://hanhuabox.lanzous.com/irYnRe4u8of¥更新内容:1、修复 - 定时提醒,运行一段时间后有概率闪退!;2、修复 - 自更新,获取下载地址出错!;hanhuabox 文件名 大小 时间

问题来了,怎么获取网页源代码文本?我这里用的是Windows API,WinHttp,网上有很多封装好的库或包,直接调用就行了,自己找找,找不到就自己写吧2、两种网页访问的Windows API

1.2、发送get、post请求获取json数据

幕布、蓝奏云、酷我挨个讲!

1.2.1、幕布:https://mubu.com/doc/pKtGTPIH10

1、打开网页后先看下源代码,没有想要的数据,这时候返回网页,右键 - 审查元素或F12 - 切换到Network - 刷新网页

2、然后下面就会弹出来很多行数据,找关键的词点开看看,右边切换到Preview(预览请求后得到的数据),找到想要的数据后就要看看这个数据是怎么来的。

3、切换到Headers,需要做什么就不用我说了吧,用WinInet或者WinHttp访问,文章最后一部分有源码,新问题:docId是怎么来的呢?

4、重复2操作,然后发送请求(get不需要提交信息),得到json数据,自己提取就可以了(看2中的数据,还掺杂着没用的数据,自己根据需要自行去除),3同理即可获得数据(post的话要提交信息,例:3中post提交 docId:3vl8SzhQgjb,多个的话用&连接)。

有时发送请求的时候会有坑,后面讲,这里的操作都没问题。

1.2.2、蓝奏云https://hanhuabox.lanzous.com/b00zjq9uf

这里就不详细讲了,关于请求获取数据,上面幕布的例子都讲完了,就是这里遇到一个坑(以前都没事,就7.2号遇到的),当我在最后一步要获取下载链接时,POST请求返回来的居然是空数据,然后我就蒙了,到处查资料,最后才知道原来是请求头中Referer的问题!(下图中sign的值在网页源代码中有,正则提取)

Referer的作用之一:防盗链,判断来源页面,只允许此网站域名访问!关于Http请求header之Referer讲解,所以在POST时需要注意附加的Referer地址。

1.2.3、酷我音乐:http://www.kuwo.cn/search/list?key=周杰伦

又是一个坑,本来我用的酷我音乐搜索api,是官方一个很老的api,结果最近提示502 Bad Gateway(现已恢复),没办法就直接去官网找了,结果一开始一直在纠结reqId的值,一直找不到,然后我就去掉这个参数去get请求,但是不管去不去掉返回的都是403 Forbidden,然后又是网上一顿查询,结果发现是Cookie和csrf的问题!reqId并不需要,请求参数只要key(关键词)、pn(第几页数据)、rn(每页获取的数据量)

什么是CSRF?为什么CSRF Token写在COOKIE里面?

CSRF:跨站请求伪造,详细的都在上面文章里,这里就不讲了。请求时将Cookiehe和csrf带上即可!

 

2、两种网页访问的Windows API

一般都有封装好的库或包,直接调用就行了,不需要自己写!下面为易语言源码,只要会中文估计都懂。。

1、使用WinInet的API方式访问网页

2、使用WinHttp的对象方式访问网页

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3