龙空技术网

用EXCEL像Python一样优雅的抓取网页中的信息

月色微茫 1242

前言:

现在小伙伴们对“python如何抓取网页里面的文字”大约比较关怀,咱们都想要知道一些“python如何抓取网页里面的文字”的相关知识。那么小编在网摘上搜集了一些关于“python如何抓取网页里面的文字””的相关内容,希望朋友们能喜欢,我们一起来了解一下吧!

上一篇我说到了如何用EXCEL抓取网页中的多页表格,上一篇链接:爬虫何必用Python,用EXCEL爬取网页上的多页表格,但有些同学会说我不想抓取表格并且我不想用EXCEL工具栏上来自网站那种粗暴的点选方式,我就想像python一样优雅的抓取网页上的信息怎么办?答案当然是可以的。下面我就教大家如何用EXCEL VBA 抓取网页上的信息。

这次的抓取目标就选有道词典的首页吧(我是随便选的) 链接: 上的在此输入要翻译的单词或文字 这几个字。虽然简单,但读者可自行扩展O(∩_∩)O~

有道首页

在EXCEL VB编辑器中插入模块,并填写自定义函数代码

VBA编辑器

2.代码如下

Public Function GetHtmlElementByRegex(url As String, reg As String)

Dim XMLHTTP As Object, html As Object, objResult As Object

Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")

XMLHTTP.Open "GET", url, False

XMLHTTP.setRequestHeader "Content-Type", "text/xml"

XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"

XMLHTTP.send

Set html = CreateObject("htmlfile")

html.body.innerHTML = XMLHTTP.responseText

Set regEx = CreateObject("VBScript.RegExp")

regEx.Pattern = reg

regEx.Global = True

If regEx.Test(XMLHTTP.responseText) Then

Set matches = regEx.Execute(XMLHTTP.responseText)

GetHtmlElementByRegex = matches(0).SubMatches(0)

Exit Function

End If

GetHtmlElementByRegex = ""

End Function

3.在EXCEL单元格中输入自定义函数名,函数的两个参数分别是要抓取的网址和正则表达式

自定义函数

4.抓取效果

抓取效果

5.关于正则表达式

我们可以发现“在此输入要翻译的单词或文字”字符串前的placeholder=在网页中是唯一存在,所以我们只要用(.*?)进行替换就可以了placeholder=""(.*?)"">,简单吧^_^

网页源代码

教程到这就结束了,有不正确的地方还望大家多多指教^_^

标签: #python如何抓取网页里面的文字