首页 > Web开发 > 详细

基于HttpClient、Jsoup的爬虫获取指定网页内容

时间:2017-04-03 18:56:43      阅读:273      评论:0      收藏:0      [点我收藏+]

  不断尝试,发现越来越多有趣的东西,刚刚接触Jsoup感觉比正则表达式用起来方便,但也有局限只适用HTML的解析。

不能尝试运用到四则运算中(工作室刚开始联系的小程序)。

  在原来写的HttpClient获取网页内容的基础上,增加对网页的解析。

 下面是实现对网页中电影分类的链接信息的爬取。

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Main { public static void main(String[] args) throws IOException{ try { //创建client实例 HttpClient client= HttpClients.createDefault(); //创建httpget实例 HttpGet httpGet=new HttpGet("http://www.btba.com.cn"); //执行 get请求 HttpResponse response=client.execute(httpGet); //返回获取实体 HttpEntity entity=response.getEntity(); //获取网页内容,指定编码 String web= EntityUtils.toString(entity,"UTF-8"); //输出网页 System.out.println(web); Document doc= Jsoup.parse(web); Elements links=doc.select("a[href~=http://www.btba.com.cn/type/*]");//选择器,选取特征信息 String webs=null; for (Element link:links) { webs=link.attr("abs:href").toString(); System.out.println(webs+"\t\t"+link.text());//输出特征信息 } } catch (IOException e) { e.printStackTrace(); } } }

下一步,将完成电影链接及电影相关信息的爬取。

基于HttpClient、Jsoup的爬虫获取指定网页内容

原文:http://www.cnblogs.com/jinxiaohang/p/6662442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!