zoukankan      html  css  js  c++  java
  • 爬虫基础

    用java做了一个小爬虫的dome,感觉挺好玩的样子。得好好学学爬虫这门技术

    1 java 原生的代码实现爬虫

    package wlpz;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.List;
    
    public class WabpageDemo {
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            URL url;
            HttpURLConnection urlCon;
            //实例化
            url=new URL("https://www.taobao.com ");
            //执行url的openConnection的方法,方法返回值为Connection连接
            urlCon=(HttpURLConnection) url.openConnection();
            //执行了getResponseCode方法,返回int状态值
            int rscode=urlCon.getResponseCode();
            if(rscode==200){   //rscode 返回两百表示成功
                BufferedReader reader=new BufferedReader
                        (new InputStreamReader(urlCon.getInputStream(),"UTF-8"));
                String line;
                List<String> alist;
                while((line=reader.readLine())!=null){
                    if((line.startsWith("<a"))&&(line.contains("data-cid")))
                        System.out.println(line.substring(line.indexOf("">")+2, line.indexOf("</a>")));
                }
            }
        }
    
    
    }

    这是将淘宝首页 a 标签的文字爬下来了

    2 java 相关的框架封装的方法,首先得先引入架包jsoup-1.7.3.jar

    网页通过get 方法来提交数据的爬取方式

    package wlpz;
    
    
    import java.io.IOException;
    
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class WabpageDemo2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                Document doc=Jsoup.connect("https://www.taobao.com").get();
                Connection con=Jsoup.connect("http://www1.sxcredit.gov.cn/public/infocomquery.do?method=publicIndexQuery");
                con.data("query.enterprisename", "兴");
                Document doc2=con.timeout(100000).post();
                Elements es=doc.getElementsByTag("a");
                for(Element e:es){
                    String text=e.text();
                    System.out.println(text);    
                    String url=e.attr("href");  
                    System.out.println(url); 
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    
    }

    爬出来是淘宝想应的链接,需要根据自己的需求来继续进一步筛选 想应的内容

     网站通过post 方式来提交数据,post 方法提交的内容不显示在浏览器的地址栏,要拿到他的内容,需要借助浏览器F12开发者的功能。

    package wlpz;
    
    
    import java.io.IOException;
    
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class WabpageDemo3 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try { 
    //            Document doc=Jsoup.connect("https://www.taobao.com").get();   爬虫的get方法
                //post 方法的爬虫
                Connection con=Jsoup.connect("http://www1.sxcredit.gov.cn/public/infocomquery.do?method=publicIndexQuery");
                con.data("query.enterprisename", "兴");
                Document doc2=con.timeout(100000).post();
                Elements es=doc2.getElementsByTag("a");
                for(Element e:es){
                    String text=e.text();
                    System.out.println(text);   
                    String url=e.attr("href");  
                    System.out.println(url); 
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    
    }

      先将代码放到博客园,以备日后丢掉相关的基础,真的是基础不牢,地动山摇。好好复习基础真的很重要。

    喜欢呼呼的文章的朋友,可以关注呼呼的个人公众号:

     

  • 相关阅读:
    电脑知识
    编译器错误信息: CS0433: 类型“ASP.global_asax”同时存在于“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727...的解决方法
    windows平台下的oracle ORA-01031的解决方法
    .NET下使用HTTP请求的正确姿势
    EasyUI Datagrid 分页
    Js 运算符(加减乘除)
    Navicat 运行 Oracle 存储过程示例
    oracle数据库忘记sys(或system)账户密码
    SQL Server 死锁问题
    C# 给某个方法设定执行超时时间
  • 原文地址:https://www.cnblogs.com/nn839155963/p/5988856.html
Copyright © 2011-2022 走看看