根据这种原理,写一个简单的网络爬虫程序 ,该程序实现的功能是获取网站发回的数据,并提取之中的网址,获取的网址我们存放在一个文件夹中,关于如何就从网

站获取的网址进一步循环下去获取数据并提取其中其他数据这里就不在写了,只是模拟最简单的一个原理则可以,实际的网站爬虫远比这里复杂多,深入讨论就太多

了。除了提取网址,我们还可以提取其他各种我们想要的信息,只要修改过滤数据的表达式则可以。以下是利用Java模拟的一个程序,提取新浪页面上的链接,存放

在一个文件里

源代码如下

package com.cellstrain.icell.util;

import java.io.*;

import java.net.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* java实现爬虫

*/

public class Robot {

public static void main(String[] args) {

URL url = null;

URLConnection urlconn = null;

BufferedReader br = null;

PrintWriter pw = null;

// String regex = "http://[\\w+\\.?/?]+\\.[A-Za-z]+";

String regex = "https://[\\w+\\.?/?]+\\.[A-Za-z]+";//url匹配规则

Pattern p = Pattern.compile(regex);

try {

url = new URL("https://www.rndsystems.com/cn");//爬取的网址、这里爬取的是一个生物网站

urlconn = url.openConnection();

pw = new PrintWriter(new FileWriter("D:/SiteURL.txt"), true);//将爬取到的链接放到D盘的SiteURL文件中

br = new BufferedReader(new InputStreamReader(

urlconn.getInputStream()));

String buf = null;

while ((buf = br.readLine()) != null) {

Matcher buf_m = p.matcher(buf);

while (buf_m.find()) {

pw.println(buf_m.group());

}

}

System.out.println("爬取成功^_^");

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

pw.close();

}

}

}

在idea的运行结果如下:

java 网络爬虫_使用Java实现网络爬虫相关推荐

  1. 基于java的网络爬虫_基于java实现网络爬虫

    [实例简介] 基于java实现的java爬虫,是我学习java来练练手的,java基础入门的学生可以考虑参考一下 [实例截图] [核心代码] 爬虫 ├── 暑假任务-爬虫系统 │   ├── bin ...

  2. linux java socket编程_深入学习socket网络编程,以java语言为例

    了解java的socket编程与Linux Socket API之间的关系 一.java的网络编程 1.socket原理 socket通信就是通过IP和端口号将两台主机建立连接,提供通信.主机A的应用 ...

  3. 招银网络科技杭州 java_招银网络科技_杭州Java后端_视频一、二面,HR面

    2020-7-28HR面 在别人面过HR面之后的一周,收到了HR面的通知.大概是7.24收到的吧. 自我介绍 为什么不读博士? 为什么投招银?了解招银网络科技吗? 平时的作息? 他们是995,问能否接 ...

  4. java常用网络协议_初识java网络编程

    一.基本概念什么是计算机网络?计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递 ...

  5. java 爬虫_探索Java 多线程爬虫及分布式爬虫架构

    在我们调试爬虫程序的时候,单线程爬虫没什么问题,但是当我们在线上环境使用单线程爬虫程序去采集网页时,单线程就暴露出了两个致命的问题: 采集效率特别慢,单线程之间都是串行的,下一个执行动作需要等上一个执 ...

  6. 杭州自学python爬虫_金华自学python网络爬虫直播

    金华自学python网络爬虫直播操作符说明实例.表示任何单个字符?[ ]字符集,对单个字符给出取值范围[abc],表示a,b,c,[a-z]表示a到z的单个字符[^ ]非字符集,对单个字符给出排除范围 ...

  7. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  8. java武功秘籍_请问java全套内容都有什么呢?

    我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...

  9. 云南大学软件学院java实验九_云南大学java实验9

    java实验 (9) 6页 2下载券 Java实验9 4页 2下载券 JAVA实验9 7页 1下载券 java 实验9 暂无评价 1页 免费 Java上机实验9 4页 免费 云大JAVA 实验9图形. ...

  10. java基础知识点_「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !

    " 本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指 ...

最新文章

  1. HiLink LiteOS IoT芯片 让IoT开发简单高效
  2. python学习笔记(二)列表(List)操作方法详解
  3. AR模型与数据平稳性之间的关系
  4. IE浏览器开发人员工具怎么使用
  5. 将Freeswitch SDP 固定为 external_rtp_ip
  6. cshtml的a标签跳转页面_朋友圈标签来了!热门流量关键词带动视频号、小程序、搜一搜...
  7. 使用CablleStatement调用存储过程
  8. html优化布局什么意思,HTML标签布局对seo的重要性(如:h1,p,alt等标签)
  9. LoadRunner去除事物中的程序的执行时间
  10. 计算机网络第五次笔记
  11. 【python使用】使用python读取mid/mif文件,高精地图解析
  12. 计算机与三菱plc485通讯,三菱plc同三菱变频器RS-485通讯功能的编程实例
  13. Sony如何启动微型计算机,索尼vaio笔记本怎么进bios设置|索尼笔记本进bios按什么键-...
  14. Pytorch训练问题:AssertionError: Invalid device id
  15. 低电压的1.8V SDHC 接口静电保护
  16. 朱棣文先生在哈佛大学毕业典礼上的演讲
  17. PaddleClas-SSLD知识蒸馏方法梳理(82.4%ResNet50系列模型养成之路)
  18. 什么是强化学习呢,来涨波知识
  19. Mysql数据表存在一对多数据合并
  20. Excel-移动平均分析及预测分析

热门文章

  1. 杰控组态自定义串口通讯的经验
  2. 2014乌云安全峰会文字版记录
  3. RESTFul API 接口文档模板
  4. 根据二次曲面模型法建立区域高程异常拟合模型
  5. SolidWorks 2018 安装教程
  6. 听说Unscrambler HSI是个很牛的光谱分析软件?
  7. Picsee 1.3.0 (48) 中文版 (可能是最好的图片管理查看工具)
  8. sqlyog怎么查找表_sqlyog各种搜索方法
  9. 大明龙权登录服务器信息解析失败,Steam第三方授权登录异常 《绝地求生》国服绑定中招...
  10. 超硬核!小白读了这篇文章,就能在算法圈混了