这段时间准备做淘宝,但不知道卖什么产品,因此想从一些B2B 网站上扒拉一些产品词下来挨个研究,但一个一个的打开网页查看产品太慢太费事,但想到这些产品词都存在于网页标题上,因此想到了用excel来批量获取网页的标题。经过一番查找,在网上找到了两种方法(其实是两组代码)。
打开excel找到开发者工具,点击"Visual Basic"
在下图所示位置右键点击添加模块
填入如下代码:
Function Title(url As String) As String
With CreateObject("Microsoft.XMLHTTP")
‘防止输入的url不管带不带http都可以转换带http的
url = "http://" & Replace(url, "http://", "")
.Open "GET", url, False
.send
url = .responsetext
‘如果源代码中含有charset=gb或者chartset="gb ,hao123的源代码是charset="gbk"那么进行2进制代码responsebody转换为unicode
If InStr(url, "charset=""gb") Or InStr(url, "charset=gb") Then url = StrConv(.responseBody, vbUnicode)
‘不管charact是不是gb的都okay 可以专心进行split(url)字符串了,以上适用任何网页
Title = Split(Split(url, "<title>")(1), "</title>")(0)
End With
End Function
或者如下代码,根据网页语言不同而不同
Function Title(ByVal url As String) As String
On Error Resume Next
url = "http://" & Replace(url, "http://", "")
With CreateObject("Msxml2.XMLHTTP")
.Open "get", url, False
.send
Title = Split(Split(.responsetext, "<title>")(1), "</title>")(0)
End With
然后回到excel,把要获取的标题网页URL填进去,在标题输出行填入"=title(A1)",剩下的直接往下拖就行了。比如获取这些网页的标题:
http://www.zhenhuajiao.com/archives/483
http://www.zhenhuajiao.com/archives/482
http://www.zhenhuajiao.com/archives/481
http://www.zhenhuajiao.com/archives/480
http://www.zhenhuajiao.com/archives/479
最后的结果是这样的:
非常实用。只是在获取标题期间excel会出现卡顿的情况,这时候千万不要去碰它,容易卡死。