(一)使用前的配置:

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框架爬取网页内容相关推荐

  1. 适合Java零基础小白学习的Java零基础教程

    很多Java零基础小白,在刚刚快入门的时候玩命的学习,玩命的记住Java原理,天天早上五点起床背Java的一些英文词汇,然后遇见一些未知的困难,让自己打到癫狂状态,逐渐迷失自我放弃Java,为了解决这 ...

  2. 【高级Java架构师系统学习】java十六进制字符串转数字

    一.字节跳动技术一面(算法) Java 的 16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 3 ...

  3. 讲解java源码_Java学习之Java源码讲解

    关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...

  4. Java核心技术基础知识学习之Java集合(三)

    文章目录 七.Java集合 7.6 Java 8 增强的 Map 集合 7.6.1 Java 8 中 Map 新增的方法 7.6.2 Java 8 改进的 HashMap 和 HashTable 实现 ...

  5. 通过WebMagic框架抓取网页中的手机号(实验练习一)

    话不多说,直接上代码,代码中注释都写的很清楚了!!! 这样吧,加一个流程图,用来方便的了解WebMagic package com.softeem.demo; import java.awt.prin ...

  6. webmagic 获取文本_学习使用Java的webmagic框架爬取网页内容

    (一)使用前的配置: 2,(1)添加依赖: us.codecraft webmagic-core 0.7.3 us.codecraft webmagic-extension 0.7.3 us.code ...

  7. 【高级Java架构师系统学习】java问答社区系统

    02 JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM类加载器 03 JAVA ...

  8. 【高级Java架构师系统学习】java如何开发安卓软件

    认识HTTP 什么是超文本 什么是传输 什么是协议 HTTP相关组件 网络模型 OSI 模型 浏览器 Web服务器 CDN WAF WebService HTML Web页面构成 与 HTTP 有关的 ...

  9. java内存区域_JVM学习之—Java内存区域

    为了加深对Java语言的理解,加深对Java虚拟机工作机制.底层特性的了解和掌握,准备在闲暇时间,抽空对<深入理解Java虚拟机 JVM高级特性与最佳实践>一书进行学习.本文是学习此书第2 ...

最新文章

  1. BCB Access violateion at Address 0000 0003. Read of address 0000 0003
  2. SHE PWM的simulink仿真谐波分析
  3. 3天html自学教程,html自学教程(八)html5基础
  4. nginx用户权限问题
  5. MySQL BIT、BINARY、VARBINARY、BLOB(二进制类型)
  6. pytorch图像数据增强N大技巧
  7. 创建抽象类、_【Java视频教程】day16-抽象类
  8. Fortinet SIEM 设备被曝存在硬编码 SSH 公钥
  9. margin和padding的学习
  10. 阶段3 2.Spring_01.Spring框架简介_03.spring概述
  11. Shell 脚本中判断字符串是否为空
  12. Sql Server 还原数据库并重命名
  13. android 动态仿磁贴,高仿 WIN8系统 磁贴点击下沉倾斜效果源码
  14. 卡卡云模板(适配彩虹发卡系统)
  15. 【python】启动客户端报错:OSError: [WinError 740] 请求的操作需要提升。
  16. element ui 自定义icon图标
  17. 下一代防火墙(NGFW)如何防御APT攻击?
  18. 一份完整的app产品运营推广方案,app推广运营的方法(二
  19. 免息贷款但有手续费的年化利率计算方法及Java实现;
  20. TiDB:基于 Raft 的 HTAP 数据库

热门文章

  1. 集成学习(西瓜书学习)
  2. 解决设置了display:none的元素,会先展示再隐藏
  3. Java中序列化的好处及意义
  4. 有关 Lambda linq练习 有待整理
  5. Linux磁盘及文件系统(二)Linux下磁盘命名和分区
  6. PHP CURL 使用代理访问服务器
  7. 30款顶级CSS工具及应用-CSDN.NET
  8. 图解 CSS (1): 先做一个样式表测试工具
  9. 牛客网--整数与IP地址间的转换
  10. Leetcode--91. 解码方法