Selenium+Phantomjs做Java爬虫

selenium+phantomjs+java phantomjs,所有依赖项都已打包,导入eclipse直接运行 立即下载

背景

以前,觉得爬虫是不稳定的,而且不被业界允许的,从来没想过会在实际的项目中使用。现在,由于各种突发情况,必须使用爬虫才能完成相应任务。起初,觉得爬虫不过是爬取网页,解析网页就可以了,比较简单,谁知一路心酸泪。

查阅各种资料,Java相关的爬虫工具也比较多,由于时间关系,只简单看了下面几种,分析如下:

 

HtmlUnit

webmagic

Selenium

phantomjs

优点

Java编写的无界面浏览器,内置Rhinojs浏览器引擎,支持表单填充,点击链接,能够获取动态页面等。

webmagic采用完全模块化的设计,支持链接提取、页面下载、内容抽取、持久化,支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。另外国人编写,文档齐全,支持。

Web浏览器测试工具,支持获取动态网页,支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等,模拟真实用户的操作。可以用来测试项目的兼容性。

PhantomJS是一个基于webkit的JavaScript API。支持Dom操作、css选择器、截屏等,无界面的浏览器操作,节省内存,另外支持js脚本,功能强大。

缺点

对css、js支持不好,最大的缺点,获取动态网页需要指定固定等待时间,类如:Thread.sleep(10000),时间不好把控,性能极差

静态HTML获取方便,但动态网页无法获取,需要另外使用工具,类如Selenium浏览器模拟。

运行过程中会打开浏览器界面,内存消耗大,与各种浏览器版本强依赖,适用于测试项目兼容性,不适用当前业务。

无界面浏览器,无法显示的模拟用户操作

由于这次需要爬取的网站,基本上都是采取JS+AJAX获取数据,渲染的动态网页,所以最终选择了 selenium+phantomjs组合进行爬取,因为selenium封装了phantomjs,能够让我们更方便,更好的使用,节约时间和成本。

准备

phantomjs下载:

使用phantomjs则需要下载相应运行器,下载网址:https://phantomjs.org/download.html,大家可以根据自己的系统进行下载,这里我们使用windows版本—phantomjs-2.1.1-windows.zip。大家下载下来解压即可。

Maven依赖如下:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</a
selenium-java-2.53.0最全jar,phantomjs.zip,实例代码,亲测可用 selenium+phantomjs无窗口浏览器,全jar包,亲测可用,实例代码加载百度 立即下载

相关推荐

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 322

eDP接口信号组成认识

eDP接口信号主要由Main Link、AUXCH与HPD三部分组成,如下图所示。 Main Link:表示主通道,用来传输各类型视频数据和音频数据; AUX CH:表示辅助通道,用于传输低带宽需求的数据,以及链路管理和设备控制信号; HPD:表示热插拔检测通道。 Main Link南1~4对数据线组成,每对数据线都是一对差分线。对于一款液晶屏而言,Main Link具体需几对数据线,这取决于屏幕的分辨率和彩色位数。 在该通道中传送的信号有视频像素信号、视频定时信号、视频格式信号、比特/像素及

精诚所至 2万+

【AI编程】Cursor编程工具使用教程:下载、配置、使用、运行Java项目

【AI编程】Cursor编程工具使用教程:下载、配置、使用、运行Java项目

funfan的博客 5198

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2395

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。明明做了 QAT,精度还是崩塌了!让我们看一个真实的案例:✅ 使用了✅ 配置了量化✅ 训练了 50 个 epoch,学习率降为原来的 1/10✅ 冻结了 BN 统计量FP32 模型:mAP = 0.85QAT 后 FP32:mAP = 0.84(正常)工具量化后:mAP = 0.68(崩塌!问题出在哪里?层融合(Layer Fusion)机制。

weixin_51988935的博客 56

科研牛马千万不要错过!手把手教你用AI精准匹配真实参考文献,仅需一个专业应用+两个提示词指令

当然也可以借助生成式AI,如GPT-5.2、Gemini 3 Pro粘贴段落,输入设计好的提示词,让模型根据段落内容匹配参考文献,并正确引用到段落合适位置,再按规范格式输出参考文献列表。阅读我提供的【正文文本】,为其中的关键论点寻找真实的、权威的参考文献(优先来源于Nature, Science, IEEE, ACM, PubMed等),并插入引用。若在段落中已经引用好了参考文献,也有参考文献列表,担心引用位置不当或论点、论述逻辑与文献不够契合,则可以用以下结构化提示词,让AI辅助审查。

智能AI让学术科研更容易 1033

Cadence Orcad Capture原理图断线的检查与避免方法

在设计电路图中,尤其是直接借鉴别人的设计进行二次开发的过程中难免会遇到如下尴尬的情况。有没有眼神好的朋友发现图纸的哪里有不对劲的地方呢?

fydar的博客 3269

杰理AC695N芯片跑iic接口的oled驱动分享

本文介绍了一个基于IIC接口的0.96寸OLED显示屏驱动程序,适用于SSD1306控制器。驱动采用软件模拟IIC方式,支持字符、数字、字符串、汉字和图片显示,测试平台为杰理AC695N系列芯片。硬件参数包括128×64分辨率,IIC接口(地址0x78),使用IO_PORTA_02(SDA)和IO_PORTA_03(SCL)引脚。驱动包含OLED主文件(oled.c/h)、软件IIC实现(soft_iic.c/h)和字体/图片数据文件(oledfont.h/bmp.h),可通过修改soft_iic.h中的引

qq_42014563的博客 883

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Feign表单文件传输遇到的坑
西红柿丶番茄
博客等级 码龄10年 21粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值