java从网页抓取数据(本节书摘来自华章社区《Clojure数据分析秘笈》(图))
优采云 发布时间: 2021-10-13 00:34java从网页抓取数据(本节书摘来自华章社区《Clojure数据分析秘笈》(图))
本节摘自华章社区《Clojure数据分析秘诀》一书第1章,1.8节从web表中抓取数据,作者(美国)Eric Rochester,更多章节可访问查看官方云栖社区“华章社区”账号
1.8 从网页表格中抓取数据
数据在互联网上无处不在。不幸的是,互联网上的许多数据并不容易获得。这些数据深埋在表格、文章 或深度嵌套的标签中。网页抓取是一项令人讨厌的物理任务,但它通常是提取此数据进行分析的唯一方法。此方法描述了如何加载网页并挖掘其内容以检索数据。
这可以使用 Enlive 库 () 来完成。该库使用基于 CSS 选择器的领域特定语言 (DSL) 来定位网页中的元素。这个库也可以用于模板。在本例中,仅使用它从网页中检索数据。
1.8.1 准备工作
首先需要在项目的依赖中添加Enlive:
故意删除文件的其他内容并使用表格的布局。
1.8.2 具体实现
由于任务有点复杂,这里把每一步的工作写成一个函数。
现在,选择所有标题单元格,从中提取文本,将每个单元格转换为 关键词,然后将整个序列加载到向量中。获取数据集的头部:
应该注意的是,这里显示的代码是多次试验和错误的结果。截屏过程是这样的。通常我会下载并保存页面,这样我就不需要不断地向 Web 服务器发送请求。然后启动REPL并解析其中的网页。可以通过浏览器的“查看源代码”功能查看网页和HTML,还可以在REPL解释器中交互查看网页中的数据。由于它的方便,我可以在工作过程中不断地在REPL解释器和文本编辑器中复制和粘贴代码。这种工作流程和环境使屏幕捕获变得容易,这是一项艰巨的任务,即使一切正常也需要精细操作。