爬虫基础

Posted 杰呼呼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫基础相关的知识,希望对你有一定的参考价值。

用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();
        }
    }


}

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

 

 

 

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

 

以上是关于爬虫基础的主要内容,如果未能解决你的问题,请参考以下文章

[vscode]--HTML代码片段(基础版,reactvuejquery)

Python网络爬虫学习手记——爬虫基础

爬虫系列 2.2 爬虫基础2 -网页结构进阶

爬虫系列 2.2 爬虫基础2 -网页结构进阶

爬虫简单基础代码

总结整理 -- 爬虫技术(C#版)