嗨~大家好!我是来自KvietaWord(KW工作室)的一名编程爱好者,大家可以叫我心灵,今天给大家带来一篇关于数据采集的教程,就如标题一样给力~请看教程! 1.前期准备I 首先我们需要准备一款编程语言,我们选用易语言。很强大的哦~ II 其次我们需要一款抓包工具,或者用浏览器自带的工具(通常按F12打开)教程里面使用火狐浏览器 III 然后我们找一个需要抓取数据的网站,本教程以前程无忧为例。 好啦,准备差不多了,咱们开始进入主题吧~ 2.易语言下创建WinHttp.WinHttpRequest.5.1对象WinHttpRequest对象 是msxml4.0的底层对象,用于在后台与服务器交换数据,现在所有的浏览器都支持,想知道更具体的信息请查看https://msdn.microsoft.com/en-us/library/aa384106.aspx,里面有此对象的所有方法说明。我就不多说了,后面写代码的时候会介绍一些常用的。 然后我们打开易语言,新建一个Windows窗口程序,并导入精易模块。 然后我们新建一个子程序并更改其名称为Main(强迫症……),新建一个变量名,如下图: 然后我们来创建WinHttp.WinHttpRequest.5.1对象。 接下来怎么办呢?咱们创建了这个对象以后却不知道里面有哪些方法呀~打开上面给的链接,如下图: 神啊!这都是些啥啊!看不懂啊~~对于中考英语只有9分的渣渣我来说,这都是些神文,还好有神器啊有木有,打开谷歌在线翻译,分分钟解决!然后我们翻译到Open和Send这两个方法以后,如下图: 大意就是说我们调用Open这个方法可以打开一个HTTP资源连接,我们点进去查看这个方法的使用说明。 发现这个方法有3个参数,第一个参数是请求的方式,第二个参数是请求的地址,第三个参数是否在异步模式下打开。 更具说明可得知第一第二个参数对应易语言的文本型,第三个参数对应易语言的逻辑型,得知了这些东西咱们来继续写代码 以百度首页为例子,我们这样就建立一个打开百度的这个资源连接,咱们打开了这个资源连接以后干啥呢?不知道QAQ,继续看文档, 发现Send方法可以发送一个请求给服务器,点进去查看详细信息, 这个方法只有一个参数,对应易语言的文本类型,大概就是要发送哪些数据给服务器,可是咱们只是获取页面呀不发送咋办~?继续看说明。 这个方法如果调用成功了就返回S_OK,错误就返回其他的错误值,每个错误值对应相关的错误。这不是重点,重点的是备注,备注上说如果咱们以GET方式打开一个HTTP资源连接,这个方法就无需发送请求体,即使它被调用的应用程序提供。这么好!咱们就不发送东西了嘛真是的,直接开干。看代码: 感觉少了点啥啊。。。咱们怎么知道它成功木有啊?根据说明成功了就返回S_OK,可是、可是 坑爹啊!没有返回值……..咋个整。。。。 继续看文档。。。。。
当我们看到这里的时候发现这堆东西,翻译过来如图: 发现ResponseBody、ResponseText这两个属性好像可以获取到页面的内容!哈哈,功夫不负有心人,咱们继续代码: 我们查看对象.读属性()的详细说明: 发现这个函数是一个变体类型,我们可以在后面加上.XX方法,如图: 由于这个方法是作为文本的实体返回,那么我们就取文本。然后输出调试文本查看是不是成功获取到页面信息了呢? 成功了!哈哈~ 还有另外两个方法ResponseBody、ResponseStream。请各位看官们自行测试哦~本节内容就到这里~ 下节我们会模拟登录前程无忧网站~再见~!
|