爬虫基础
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(); } } }
先将代码放到博客园,以备日后丢掉相关的基础,真的是基础不牢,地动山摇。好好复习基础真的很重要。
喜欢呼呼的文章的朋友,可以关注呼呼的个人公众号:
以上是关于爬虫基础的主要内容,如果未能解决你的问题,请参考以下文章