excelvba抓取网页数据(如何获取百度查询结果——抓取网站数据(组图) )

优采云 发布时间: 2022-04-11 16:20

  excelvba抓取网页数据(如何获取百度查询结果——抓取网站数据(组图)

)

  当用户通过 Web 浏览器登录到 Internet 时,他们将向 Web 服务器请求一个网页。服务器收到请求后,会做出响应,将设置好的页面文档发送到网页浏览器的显示界面。这是一个完整的请求和处理网页的过程。网页抓取就是在代码过程中尝试模拟这种交互过程。

  首先,在 Excel 中使用 VBA 来捕获 网站 数据。

  其次,无论是使用 Python、Java 还是 VBA 进行网页抓取,都需要对 HTTP 协议、HTML(HyperTextMarkup Language,超文本标记语言)和 DOM(Document Object Model,文档对象模型)等知识有一个初步的了解。

  此外,还介绍了一个软件 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】选项卡,可以查看多个参数的Names和对应的Values。百度搜索的关键词“网络爬虫”位于参数wd下,如下图所示。所以 URL 可以缩短如下。

  网络爬虫

  

  4.点击Request框中的【Raw】按钮查看响应消息的详细数据,点击框右下角的【View in Notepad】按钮将相关数据转换成记事本文件。在记事本中,搜索关键词“百度为你找到相关结果”,即可查看收录该关键词的相关数据。

  

  示例代码如下。

<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), "

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线