excelvba抓取网页数据(如何获取百度查询结果——百度抓取结果的个数 )
优采云 发布时间: 2021-09-24 06:06excelvba抓取网页数据(如何获取百度查询结果——百度抓取结果的个数
)
当用户通过网络浏览器登录互联网时,他会向网络服务器请求某个网页。服务器收到请求后,会响应,将设置好的页面文件发送到浏览器的显示界面。这是一个完整的网页请求和处理的过程。Netscrape 尝试在代码过程中模拟这种交互过程。
首先,在 Excel 中使用 VBA 来捕获 网站 数据。
其次,无论是使用Python、java还是VBA进行网页抓取,都需要对HTTP协议、HTML(HyperTextMarkup Language)和DOM(文档对象模型)有初步的了解。
此外,还介绍了一个软件 Fiddler。网络爬虫的成功需要准确真实的URL,模拟正确的请求消息,分析服务器响应请求后返回的信息,这些数据可以通过Fiddler软件获取。通过 Fiddler 很容易找到内容所在的 URL。
今天简单介绍一下如何获取百度查询结果——抓取的百度查询结果数量。
1.首先打开Fiddler软件,在浏览器中打开百度网站,搜索关键词“网络爬虫”。
2.在Fiddler软件中搜索“百度为你找到相关结果”,如下图。
3. 点击对话框中的第一个*敏*感*词*数据,点击右侧Request框中的【Raw】按钮,可以查看发送请求的HTTP报文的详细数据。第一行是请求行,内容如下。
GET https://www.baidu.com/s?wd=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&rsv_spt=1&rsv_iqid=0xf8d676de000321a4&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=12&rsv_sug1=16&rsv_sug7=101&rsv_sug2=0&inputT=5516&rsv_sug4=6639 HTTP/1.1
开头的GET为请求方法字段,结尾的HTTP/1.1为协议版本字段,其余信息为URL字段。由于请求行使用 GET 方法,因此请求数据将附加到 URL。URL和请求数据用“?”分隔,多个参数用“&”连接。
虽然传输数据的参数很多,但并不是所有的参数都是必须的。在Request框中选择【WebForms】选项卡,可以查看多个参数的Name和对应的Value。百度搜索到的关键词“网络爬虫”位于参数wd下,如下图所示。因此,URL 可以简明如下。
网络爬虫
4. 在Request框中点击【Raw】按钮查看响应报文的详细数据,点击框右下角的【在记事本中查看】按钮将相关数据转换为记事本文件格式。在记事本中搜索关键词“百度为你找到了相关结果”,即可查看收录该关键词的相关数据。
示例代码如下。
<p>Sub WebQueryBaidu()
Dim objXMLHTTP As Object
Dim strURL As String
Dim strText As String
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With objXMLHTTP
strURL = "https://www.baidu.com/s?wd=网络爬虫"
.Open "GET", strURL, False
.send
strText = .responseText
End With
Range("a1") = "百度:excelhome 结果个数为:"
Range("a2") = Split(Split(strText, "百度为您找到相关结果")(1), "