首页 > java网页抓取

java网页抓取

  网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度

  直接进入正题

  

 1 //要抓取的网页地址
 2 String urlStr = "http://**************/center";
 3 URL url = new URL(urlStr);
 4 URLConnection connection = url.openConnection();
 5 //得到网页的编码方式
 6 System.out.println(connection.getContentType());
 7         
 8 //读取网页的的内容
 9 BufferedReader read = new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));
10 File file = new File("d:/test.html");
11 BufferedWriter write = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
12 if(read != null){
13 String s = null;
14 while((s = read.readLine()) != null){
15     System.out.println(s);
16     write.write(s);
17     write.flush();
18 }
19 read.close();
20 write.close();

 

  很简单,大家不用死记硬背,我的这个思想是,

    1.通过一个url打开一个连接

    2.通过这个连接来得到网页的编码方式

    3.通过这个连接打开一个写入流,我这里把这个网页写到我的本地了,大家在练习的时候随意。

    4.进行标准的写入

    5.最重要一步,关闭连接

  就这么简单的一个小网页抓取。

    防止你的网页被别人抓取试用robots.txt,具体怎么还没研究过,http://www.robotstxt.org/ 这个是官网

    测试你的网站是否生效了,直接http://网站名/robots.txt如果显示,则证明成功。

转载于:https://www.cnblogs.com/duwenlei/p/3480755.html

更多相关:

  • 搜索引擎技术之概要预览前言    近些天在学校静心复习功课与梳理思路(找工作的事情暂缓),趁闲暇之际,常看有关搜索引擎相关技术类的文章,接触到不少此前未曾触碰到的诸多概念与技术,如爬虫,网页抓取,分词,索引,查询,排序等等,更惊叹于每一幅精彩的架构图,特此,便有记录下来的冲动,以作备忘。    本文从最主要的搜索引擎的概念谈起,到全...

  • 一些常用的页面属性获取: 网页可见区域宽:document.body.clientWidth; 网页可见区域高:document.body.clientHeight;    类似视口宽度   网页正文全文宽:document.body.scrollWidth; 网页正文全文高:document.body.scrollHeight;...

  • 如何更有效WEB应用防火墙确保信息安全对于现代企业而言,信息资产就和企业其它电脑知识重要的资产一样都是非常具有价值的,应该被妥善加以保护并可被审核。但是信息系统面临着许多安全的威胁,因此只有对信息系统安全风险应加以管理,才能降低系统提供信息不及时、不完整与不正确等风险,而设置适当的策略控制及保存审核档案记录,还能方便便及时发现并追踪...

  • 菜鸟一枚,正在学习C++ Gui Qt4,整理很零碎,欢迎批评指正   1.窗口标题: QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); **************************************** 关于标题...

  • 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 总体思路是: 比较两个链表头节点,较小的插入新链表指针之后,同时较小链表指针向后移动一位 实现如下: ListNode* mergeTwo...

  • 1.直接调用微软socket对象处理 static void Main(string[] args){try{IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });//在3721端口新建一个TcpListener对象TcpListener listener = new...

  •   现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册,比如一个集群服务器,需要知道哪些服务器在线,哪些服务器不在线。   ZK有一个功能,就是创建临时节点,当机器启动应用的时候就会连接到一个ZK节点,然后创建一个临时节点,那么通过获取监听该路径,并且获取该路径下的节点数量就知道有哪些服务...

  • 前台到后台java时data日期类型的转化 在实体类中用@DataTimeFormat,这样设置即使传过来是空的字符串也是可以转的,要和前面传过来的格式一致,如 @XmlElement(name="BeginDate") @DateTimeFormat(pattern="yyyy-MM-dd") private Date begin...

  • 一、代码结构概览1.核心部分configs:储存各种网络的yaml配置文件datasets:存放数据集的地方detectron2:运行代码的核心组件tools:提供了运行代码的入口以及一切可视化的代码文件。2.Tutorial部分demo:显而易见就是demodocs: 同样显而易见。。tests:提供了一些测试代码projects:...

  •     我刚刚接手这个项目的时候就被一系列不知所措的文件命名给深深的震惊了,那种振聋发聩不亚于听到赌王离世的消息。 首先请看,文件本来是用于处理“请假审批”,但是文件名居然叫做“teaApprove”,不要欺负我的初中英语不好,这个teaApprove我第一个感觉就是和“喝茶、茶叶”有关的业务,可是和我们这个项目八竿子打不着...

  • 这个问题简单,不做过多描述,如题所述,如果因为这个导致错误,请安装 npm install stylus-loader css-loader style-loader -D...

  • 使用这个宏TS_VERSION_MAOR来判断,这个宏定义在编译时生成在apidefs.h,它包含在ts/ts.h中,所以请在插件这包含...

  • linux valgrind Memcheck–内存检查工具 使用方法: 注意,这里要用debug版本,如果是release的运行文件,则用debug编译出来的可执行文件替换 输出到终端: valgrind --tool=memcheck --leak-check=full ./test.out 输出到文件: valgri...