Java 网页抓取
尽管很多人更喜欢使用 Python另一种同样流行的选择是使用 Java 进行网页抓取。下面是一份循序渐进的指南帮助你轻松完成这一过程。在开始之前请确保你的电脑已完成以下环境配置以便更好地进行网页抓取Java 11 —— 虽然有更高版本但 Java 11 仍是开发者中应用最广泛的版本。Maven —— 构建自动化与依赖管理工具。IntelliJ IDEA —— 用于开发 Java 软件的集成开发环境IDE。HtmlUnit —— 浏览器行为模拟器如表单提交模拟。你可以用以下命令检查安装情况java -versionmvn -v替代方案Bright Data 的 Web Scraping API 提供全自动的数据采集解决方案。无需处理搭建与维护爬虫的复杂性——只需定义目标网站、所需数据集与输出格式即可。无论你需要实时结构化数据还是定时交付Bright Data 强大的工具都能确保准确性、可扩展性与易用性。非常适合重视效率与可靠性的专业团队。现在让我们继续编写 Java 爬虫。第一步检查目标页面进入你想采集数据的目标网站在页面任意位置右键并点击“检查元素”或“检查”以打开“开发者工具”从而访问网页的 HTML。第二步开始抓取 HTML打开 IntelliJ IDEA创建一个 Maven 项目Maven 项目包含一个 pom.xml 文件。打开 pom.xml首先设置项目的 JDK 版本properties project.build.sourceEncodingUTF-8/project.build.sourceEncoding maven.compiler.source11/maven.compiler.source maven.compiler.target11/maven.compiler.target /properties然后在 pom.xml 中添加 HtmlUnit 依赖如下所示dependencies dependency groupIdnet.sourceforge.htmlunit/groupId artifactIdhtmlunit/artifactId version2.63.0/version /dependency /dependencies现在一切就绪可以开始编写第一个 Java 类。先像这样创建一个新的 Java 源文件我们需要创建一个 main 方法作为应用程序的入口。如下所示public static void main(String[] args) throws IOException { }应用程序将从该方法启动它是程序的入口点。现在可以按如下方式引入 HtmlUnit 并发送 HTTP 请求import com.gargoylesoftware.htmlunit.*; import com.gargoylesoftware.htmlunit.html.*; import java.io.IOException; import java.util.List;接着按如下方式创建一个 WebClient 并设置选项private static WebClient createWebClient() { WebClient webClient new WebClient(BrowserVersion.CHROME); webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(false); return webClient; }第三步从 HTML 提取/解析数据现在我们来提取感兴趣的目标价格数据。我们将使用 HtmlUnit 的内置方法来实现。以下示例展示了如何针对“商品价格”这一数据点进行操作WebClient webClient createWebClient(); try { String link https://www.ebay.com/itm/332852436920?epid108867251hashitem4d7f8d1fb8:g:cvYAAOSwOIlb0NGY; HtmlPage page webClient.getPage(link); System.out.println(page.getTitleText()); String xpath //*[id\mm-saleDscPrc\]; HtmlSpan priceDiv (HtmlSpan) page.getByXPath(xpath).get(0); System.out.println(priceDiv.asNormalizedText()); CsvWriter.writeCsvFile(link, priceDiv.asNormalizedText()); } catch (FailingHttpStatusCodeException | IOException e) { e.printStackTrace(); } finally { webClient.close(); }要获取目标元素的 XPath可使用开发者工具。在开发者工具中右键单击选中的区域点击“Copy XPath复制 XPath”。该操作会将所选区域复制为一个 XPath 表达式网页包含链接、文本、图形和表格。如果你选择的是某个表格的 XPath就可以将其导出为 CSV并在 Microsoft Excel 等程序中进行进一步计算与分析。下一步我们将演示如何将表格导出为 CSV 文件。第四步导出数据现在数据已经解析完成我们可以将其导出为 CSV 格式以便进一步分析。这种格式有些专业人士更偏好因为可以在 Microsoft Excel 中方便地打开/查看。以下是实现该功能的示例代码public static void writeCsvFile(String link, String price) throws IOException { FileWriter recipesFile new FileWriter(export.csv, true); recipesFile.write(link, price\n); recipesFile.write(link , price); recipesFile.close(); }结论尽管 Java 可以帮助各类从业者提取所需数据但网页抓取过程可能相当耗时。若希望全面自动化数据采集流程你可以使用 Bright Data 的 Web Scraping API。你只需选择目标网站和输出数据集然后设定所需的计划、文件格式与交付方式即可。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2591136.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!