通过WebMagic框架抓取网页中的手机号(实验练习一)
话不多说,直接上代码,代码中注释都写的很清楚了!!!
这样吧,加一个流程图,用来方便的了解WebMagic
package com.softeem.demo;
import java.awt.print.Pageable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.List;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft.webmagic.selector.Html;
import us.codecraft.webmagic.selector.Selectable;
/**
*
* @author 张智远
*
*WebMagic框架 使用Java原生开发方式
*核心很简单,功能性给简单性让步
*四个核心组件
*PageProcessor 负责解析页面
*Scheduler负责管理待抓取的URL
*Pipeline 负责抽取结果处理,做持久化操作
*Downloader 负责从网上下载页面
*/
public class GetPhoneNumber implements PageProcessor{
PrintWriter pw=null;
//抓取网站的相关配置
private Site site=Site.me()
.setCharset("utf-8")//设置字符集
.setTimeOut(10000)//设置超时时间
.setRetrySleepTime(3)//设置重试次数
.setSleepTime(1000);//设置休眠时间
@Override
public Site getSite() {
return site;
}
//爬取逻辑
@Override
public void process(Page page) {
//获取到通过Downloader下载下来的URL
Selectable url= page.getUrl();
System.out.println(url);
//通过正则表达式去匹配是否是我们想要的抓取的网页URL 正则表达式只能匹配格式的争取行,不能检验数据的有效性
if(url.regex("http://www.taohaoma.com/mobile/number\\?p=\\d&order=").match()) {
//开始抓取有用信息
//System.out.println("匹配成功!");
//获取页面信息
Html html=page.getHtml();
//System.out.println(html);
//通过Xpath去解析Html Xpath是w3c XSLT标准的主要元素 还是一门在xml文档中查找信息的语言
//XQuery和Xpointer都是构建在Xpath之上
List<String> list=html.xpath("[@id='f12']/table/tbody/tr/td[1]/a/text()").all();//用id进行定位
//将文件保存到本地
downPhoneNumber(list);
for (String string : list) {
System.out.println(string);
}
}
}
//将内容存放到本地的方法
public void downPhoneNumber(List<String> list) {
//描述存的位置路径文件
File file=new File("D:/phoneNumber1.txt");
try {
//输出流
FileOutputStream fos=new FileOutputStream(file);
//字符流
pw=new PrintWriter(fos,true);
//往本地输出
for (String string : list) {
pw.println(string);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if(pw!=null)pw.close();
}
}
//程序入口
public static void main(String[] args) {
Spider.create(new GetPhoneNumber())
.thread(1)
.addUrl("http://www.taohaoma.com/mobile/number?p=1&order=")
.run();
}
}
通过WebMagic框架抓取网页中的手机号(实验练习一)相关推荐
- Python抓取网页中的动态序列化数据
Python抓取网页中的动态序列化数据 动态序列化数据经常应用于前后端分离的页面.或者通过VUE.JS等HTML页面环境,常规的爬虫抓取方法并不能满足数据采集的要求,因此需要其他的方式进行数据的采集. ...
- php正则获取li,用正则表达式抓取网页中的ul 和 li标签中最终的值!
获取你要抓取的页面 const string URL = "http://www.hn3ddf.gov.cn/price/GetList.html?pageno=1"; ...
- 一个用php抓取网页中电子邮箱的实例
原文出自: http://outofmemory.cn/code-snippet/36020/php-how-zhuaqu-wangye-youxiangdizhi-code php如何抓取网页中邮箱 ...
- Python小应用1 - 抓取网页中的链接地址
看到一篇博文上讲到用Python写自动访问博客的功能,里面的核心功能就是抓取网页中的链接,类似一个网页爬虫工具.正好我刚学习Python,就决定自己练习一下.写了一下,原本觉得很简单的东西,搞了半天才 ...
- python获取网页图片_python抓取网页中的图片示例
python抓取网页中的图片示例 代码如下: #coding:utf8 import re import urllib def getHTML(url): page = urllib.urlopen( ...
- php 采集邮箱,采集邮箱的php代码(抓取网页中的邮箱地址)
采集邮箱的php代码(抓取网页中的邮箱地址) 复制代码 代码如下: $url='http://www.jb51.net'; //这个网页里绝对含有邮件地址. $content=file_get_con ...
- java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码
[实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...
- 批量验证邮箱地址php代码,php结合正则批量抓取网页中邮箱地址
php如何抓取网页中邮箱地址,下面我就给大家分享一个用php抓取网页中电子邮箱的实例. $url='http://www.jb51.net'; //要采集的网址 $content=file_get_c ...
- c语言编程网页数据提取,怎么用c语言抓取网页中的数据
当前位置:我的异常网» C语言 » 怎么用c语言抓取网页中的数据 怎么用c语言抓取网页中的数据 www.myexceptions.net 网友分享于:2013-07-17 浏览:390次 如何用c ...
最新文章
- HTTP协议基础知识点点滴滴
- BmpEncrypt v3.20.1017 ++ 加密器
- 2017.9.19 禁忌 失败总结
- Android:是时候掌握WebView与Js的交互技术了
- 基于Python+OpenCV的人脸口罩识别检测
- 读msdn文档----五种提高SQL性能的方法
- 「测绘知识」高等级道路竖曲线的精确计算方法
- jsonrpc php使用,基于php的json rpc原理及应用
- 有专门收C语言答案的软件吗,C语言二级考试题库APP
- python常遇到的各类问题解决办法
- Win11新建不了文本文档?Win11右键无法新建文本文档的解决方法
- app端-留存分析-周留存率报表开发
- 道友自诉:入职中软一个月(外包华为)就离职了!
- Eagle设计师必备利器管理工具
- 【2016读书】4月读书笔记
- 【Grub2】常见命令
- Linux中的which和whereis
- win10连接linux nfs,win10系统使用nFs共享的操作方法
- 关于Android官网打不开问题解决方案
- 掌柜智囊收银软件 v1.10.0.310官方版
热门文章
- 基于VueAxios制作音乐播放器(bilibili黑马程序员Vue入门学习记录)
- FPGA中的ODDR原语是干嘛用的?
- 广东工业大学文远知行杯新生程序设计竞赛(重现赛)复习
- 专题开发十二:JEECG微云高速开发平台-基础用户权限
- mts文件怎么转成mp4格式?
- 电网需求响应以及在居民用户中的应用介绍
- GOB算法matlab,智能天线赋形EBB算法和GOB算法比较
- 我做了一个霸气侧漏的极客专属版万圣节南瓜机器人!
- Android 验证码和密码输入框,能自定义输入框个数和样式(连体,下划线和方形框) 类似微信支付宝的密码输入框等
- 升级B2B平台模式,B2B电商交易系统供应链金融助力企业打造金融生态圈