java爬取电话号码_Java|使用WebMagic进行电话爬取

package com.yellow.java_pachong.tel2;

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;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.PrintWriter;

import java.util.List;

public class GetPhoneNumber implements PageProcessor {

//抓取网站的相关配置

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文档中查找信息的语言,先定位到最近的一个div的idf12作为根部,再根据我们需要的号码一层一层下去,并用集合装

List list = html.xpath("[@id='f12']/table/tbody/tr/td[1]/a/text()").all();

//将文件存到本地

downPhoneNumber(list);

//            for (String string : list) {

//                System.out.println(string);

//            }//控制台遍历打印

}

}

//将爬取到的内容保存到本地

public void downPhoneNumber(List list){

//创建存储位置

File file = new File("H:/桌面/tel2.txt");

//定义流,为了可以在finally处,无论是否成功,都可以关流释放资源。

PrintWriter pw = null;

try {

//输出流

FileOutputStream fos = new FileOutputStream(file);

//字符流

pw = new PrintWriter(fos,true);

//向本地输出

for (String string : list){

pw.println(string);

}

System.out.println("写入完毕!");

} catch (FileNotFoundException e) {

e.printStackTrace();

} finally {

//关流

pw.close();

}

}

//程序入口

public static void main(String[] args) {

//创建线程,addUrl爬哪个网址,run启动

Spider.create(new GetPhoneNumber())

.thread(1)

.addUrl("http://www.taohaoma.com/mobile/number?p=1&order=")

.run();

}

}

Java WebMagic是一个开源的Java爬虫框架,可以用于爬取网页数据,包括图片。它提供了简单易用的API,可以方便地定义爬取规则和处理爬取结果。 要使用Java WebMagic进行图片爬取,首先需要添加WebMagic的依赖到你的项目中。然后,你可以按照以下步骤进行操作: 1. 创建一个Java类,作为你的爬虫程序的入口点。 2. 在该类中,使用WebMagic提供的注解和API定义你的爬取规则。你可以指定要爬取的网页URL、要提取的图片链接等信息。 3. 实现一个自定义的处理器(Pipeline),用于处理爬取到的图片数据。你可以将图片保存到本地或者进行其他处理。 4. 创建一个爬虫对象,并设置好爬取规则和处理器。 5. 启动爬虫,开始爬取图片。 以下是一个简单的示例代码,演示了如何使用Java WebMagic进行图片爬取: ```java import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.pipeline.FilePipeline; import us.codecraft.webmagic.processor.PageProcessor; public class ImageSpider { public static void main(String[] args) { // 创建一个PageProcessor对象,用于定义爬取规则 PageProcessor pageProcessor = new MyPageProcessor(); // 创建一个Pipeline对象,用于处理爬取结果 FilePipeline filePipeline = new FilePipeline("保存图片的目录"); // 创建一个Spider对象,并设置好PageProcessor和Pipeline Spider spider = Spider.create(pageProcessor) .addUrl("要爬取的网页URL") .addPipeline(filePipeline); // 启动爬虫 spider.run(); } // 自定义的PageProcessor类,用于定义爬取规则 static class MyPageProcessor implements PageProcessor { @Override public void process(Page page) { // 提取图片链接,并将其添加到爬取队列中 page.addTargetRequests(page.getHtml().$("img[src]").all()); // 获取图片链接,并保存到结果中 page.putField("image", page.getHtml().$("img[src]").all()); } @Override public Site getSite() { return Site.me(); } } } ``` 请注意,上述示例代码中的"要爬取的网页URL"和"保存图片的目录"需要根据实际情况进行替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值