美文网首页
Java爬虫_静态页面

Java爬虫_静态页面

作者: 笑才 | 来源:发表于2019-03-10 13:15 被阅读0次

一、 网络爬虫是做什么的? 他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出想要查找的数据,另一方面从响应中解析出新的URL路径,然后继续访问,继续解析;继续查找需要的数据和继续解析出新的URL路径 .
一个简单的爬虫 必需的功能:
1: 发送请求和获取响应的功能 ;
2: 解析响应的功能 ;
3: 对 过滤出的数据 进行存储 的功能 ;
4: 对解析出来的URL路径 处理的功能 ;

二、爬取对象分类
静态网页:可以通过URLConnection获取页面的全部数据,这个做法就比较简单了,只需要构建一个URLConnection请求获取页面数据,然后通过正则表达式获取相关的数据即可
动态网页:网页的部分或全部数据是通过js的方式动态展现的,不能通过URLConnection直接获取,此时就需要借助HtmlUnit工具,此工具是一个无界面的浏览器,可以模拟浏览器的操作,通过这个工具,加载完网页之后,再获取页面数据进行解析,即可爬取到数据

三,本文内容

import java.io.*;
import java.net.*;

public class URLDemo {
    public static void main(String args[]){
        String strurl="http://search.dangdang.com/?key=%BB%FA%D0%B5%B1%ED&act=input";
        //建立url爬取核心对象
        try {
            URL url=new URL(strurl);
            //通过url建立与网页的连接
            URLConnection conn=url.openConnection();
            //设置Cookie
            conn.setRequestProperty("Cookie", "CCSHOW=0000; UM_distinctid=16851a6d99c465-06e87115fc0059-5d1f3b1c-1fa400-16851a6d99d4e; Hm_lvt_a508812e5f39db30c00a9baf08b5552c=1547558116; qqmail_alias=caill@primeton.com; biz_referrer=mail.primeton.com; qm_authimgs_id=0; qm_verifyimagesession=h01bbe41167310e7c54373a6f9faf39f21af4455d38cabe79a7574cd4e4389431f727dfd70f106d2bfc; tinfo=1551787690.0000*; qm_flag=0; qqmail_alias=caill@primeton.com; sid=687662877&1630ba2744be71610e2f2c8f59e0f0db,c_jLNc2jTdbU.; qm_sid=1630ba2744be71610e2f2c8f59e0f0db,c_jLNc2jTdbU.; qm_username=687662877; biz_username=687662877; ssl_edition=sail.qq.com; username=687662877&687662877; qylevel=3; qm_sk=687662877&nf7TF-OB; new_mail_num=687662877&150; qm_ssum=687662877&2c729250e04be3a80760a9cc62a41cd8");
            //通过链接取得网页返回的数据
            InputStream is=conn.getInputStream();
            
            System.out.println(conn.getContentEncoding());
            //一般按行读取网页数据,并进行内容分析
            //因此用BufferedReader和InputStreamReader把字节流转化为字符流的缓冲流
            //进行转换时,需要处理编码格式问题
            BufferedReader br=new BufferedReader(new InputStreamReader(is,"GB2312"));
        
            //按行读取并打印
            String line=null;
            while((line=br.readLine())!=null){
                System.out.println(line);
            }
            
            br.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
}

四、总结:
通过以上代码就能获取静态的网页数据了,后面只需要通过正则表达式截取有用信息即可,此文不再赘述。

相关文章

  • Java爬虫_静态页面

    一、 网络爬虫是做什么的? 他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一...

  • Java爬虫_动态页面

    一、爬虫介绍:请查看我的上篇文章 “Java爬虫_静态页面”二、动态爬虫工具介绍:1、IDEA,开发工具,创建Ma...

  • 爬虫初窥

    静态爬虫和动态爬虫 静态爬虫:页面数据的展示不依靠js等和后台的交互。动态爬虫:页面的数据需要通过js,ajax等...

  • 静态页面爬虫

    requests库简介 以下是requests库的官方介绍: Requests 唯一的一个非转基因的 Python...

  • JavaWeb随心笔记(2)

    JSP 相关技术 JSP 是在 HTML 页面中嵌入 Java 代码。HTML 负责页面的静态部分, Java 代...

  • leetcode爬虫源码寻找之意外发现

    nodejs爬取自己做的leetcode题目并以静态形式部署。 爬虫源码 leetcode spider 页面源码...

  • node.js爬虫入门(二)爬取动态页面(puppeteer)

    之前第一篇爬虫教程node.js爬虫入门(一)爬取静态页面讲解了静态网页的爬取,十分简单,但是遇到一些动态网页(a...

  • Java爬虫入门简介(二) —— Jsoup解析HTML页面

    Java爬虫入门简介(二) —— Jsoup解析HTML页面 原文链接:http://blog.csdn.net/...

  • weibo词云

    爬虫部分首先 解析页面在关闭js后发现 页面完全是静态的 所以只需要一次请求 就完全加载页面先拿到page的数量 ...

  • Python开发轻量级爬虫

    1.概述 对于轻量级爬虫: 只抓取静态页面 而对于高级的爬虫,需要考虑的因素就较多,如: 如何模拟登陆 验证码识别...

网友评论

      本文标题:Java爬虫_静态页面

      本文链接:https://www.haomeiwen.com/subject/snjupqtx.html