webmagic 获取文本_学习使用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();//关闭客户端,释放内存

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值