java爬取button_学习使用Java的webmagic框架爬取网页内容
(一)使用前的配置:
2,(1)添加依赖:
us.codecraft
webmagic-core
0.7.3
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
(2)从GitHub官网下载webmagic的压缩包(https://codeload.github.com/code4craft/webmagic/zip/master),将webmagic-core使用Module from Existing Source..导入项目中
(3)在resources中添加资源文件log4j.properties中添加
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=INFO, A1
# A1is setto be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
(二)写程序爬虫:
抽取元素:
1,page使用css选择器
2,page使用XPath
3,使用正则表达式
regex(“正则表达式”)
获取元素:
设置爬虫属性:site
Scheduler组件:
1,对抓取的url保存到队列
2,对抓取的url去重
(三)使用htmlunit模拟点击https://www.bilibili.com/video/av62605696;官方文档:http://htmlunit.sourceforge.net/apidocs/
htmlunit模拟js运行
1,获取文本框和按钮,设置文本框的值,然后使用按钮的click方法提交获得新的页面
例子:
packagecom.open1111;importjava.io.IOException;importjava.net.MalformedURLException;importcom.gargoylesoftware.htmlunit.BrowserVersion;importcom.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;importcom.gargoylesoftware.htmlunit.WebClient;importcom.gargoylesoftware.htmlunit.html.HtmlForm;importcom.gargoylesoftware.htmlunit.html.HtmlPage;importcom.gargoylesoftware.htmlunit.html.HtmlSubmitInput;importcom.gargoylesoftware.htmlunit.html.HtmlTextInput;public classHtmlUnitTest5 {public static voidmain(String[] args) {
WebClient webClient=new WebClient(BrowserVersion.FIREFOX_52); //实例化Web客户端
try{
HtmlPage page=webClient.getPage("http://blog.java1234.com/index.html"); //解析获取页面
HtmlForm form=page.getFormByName("myform"); //得到搜索Form
HtmlTextInput textField=form.getInputByName("q"); //获取查询文本框
HtmlSubmitInput button=form.getInputByName("submitButton"); //获取提交按钮
textField.setValueAttribute("java"); //文本框“填入”数据
HtmlPage page2=button.click(); //模拟点击
System.out.println(page2.asXml());
}catch(FailingHttpStatusCodeException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(MalformedURLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}finally{
webClient.close();//关闭客户端,释放内存
}
}
}
java爬取button_学习使用Java的webmagic框架爬取网页内容相关推荐
- 适合Java零基础小白学习的Java零基础教程
很多Java零基础小白,在刚刚快入门的时候玩命的学习,玩命的记住Java原理,天天早上五点起床背Java的一些英文词汇,然后遇见一些未知的困难,让自己打到癫狂状态,逐渐迷失自我放弃Java,为了解决这 ...
- 【高级Java架构师系统学习】java十六进制字符串转数字
一.字节跳动技术一面(算法) Java 的 16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 3 ...
- 讲解java源码_Java学习之Java源码讲解
关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...
- Java核心技术基础知识学习之Java集合(三)
文章目录 七.Java集合 7.6 Java 8 增强的 Map 集合 7.6.1 Java 8 中 Map 新增的方法 7.6.2 Java 8 改进的 HashMap 和 HashTable 实现 ...
- 通过WebMagic框架抓取网页中的手机号(实验练习一)
话不多说,直接上代码,代码中注释都写的很清楚了!!! 这样吧,加一个流程图,用来方便的了解WebMagic package com.softeem.demo; import java.awt.prin ...
- webmagic 获取文本_学习使用Java的webmagic框架爬取网页内容
(一)使用前的配置: 2,(1)添加依赖: us.codecraft webmagic-core 0.7.3 us.codecraft webmagic-extension 0.7.3 us.code ...
- 【高级Java架构师系统学习】java问答社区系统
02 JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM类加载器 03 JAVA ...
- 【高级Java架构师系统学习】java如何开发安卓软件
认识HTTP 什么是超文本 什么是传输 什么是协议 HTTP相关组件 网络模型 OSI 模型 浏览器 Web服务器 CDN WAF WebService HTML Web页面构成 与 HTTP 有关的 ...
- java内存区域_JVM学习之—Java内存区域
为了加深对Java语言的理解,加深对Java虚拟机工作机制.底层特性的了解和掌握,准备在闲暇时间,抽空对<深入理解Java虚拟机 JVM高级特性与最佳实践>一书进行学习.本文是学习此书第2 ...
最新文章
- BCB Access violateion at Address 0000 0003. Read of address 0000 0003
- SHE PWM的simulink仿真谐波分析
- 3天html自学教程,html自学教程(八)html5基础
- nginx用户权限问题
- MySQL BIT、BINARY、VARBINARY、BLOB(二进制类型)
- pytorch图像数据增强N大技巧
- 创建抽象类、_【Java视频教程】day16-抽象类
- Fortinet SIEM 设备被曝存在硬编码 SSH 公钥
- margin和padding的学习
- 阶段3 2.Spring_01.Spring框架简介_03.spring概述
- Shell 脚本中判断字符串是否为空
- Sql Server 还原数据库并重命名
- android 动态仿磁贴,高仿 WIN8系统 磁贴点击下沉倾斜效果源码
- 卡卡云模板(适配彩虹发卡系统)
- 【python】启动客户端报错:OSError: [WinError 740] 请求的操作需要提升。
- element ui 自定义icon图标
- 下一代防火墙(NGFW)如何防御APT攻击?
- 一份完整的app产品运营推广方案,app推广运营的方法(二
- 免息贷款但有手续费的年化利率计算方法及Java实现;
- TiDB:基于 Raft 的 HTAP 数据库