关于网页抓取信息 Jsoup 和 HttpUnit 的使用
2015-05-15 09:59
441 查看
之前看了看 洪祥的csdn app ***,里面有从网页抓取数据的. 之前对这块操作没有接触过,所以网上差了一些资料,现在整理下相关的内容.
首先是关于Jsoup , Jsoup 是网页抓取的首选.但是请注意: 如果Jsoup去抓取的页面的数据,全都是页面加载完成后,ajax获取形成的,是抓取不到的。
具体请看鸿翔的博客. 地址是 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
首先看看Jsoup 的代码:
这个是网页源代码中截取的一段,我们需要去解析这段代码:
这是使用 Jsoup 解析:
上面的代码不难, 就是解析数据.相信仔细看都可以看懂.
下面总结下HttpUnit :
具体请看鸿翔的博客. 地址是 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
ok 我的第一篇博客 哈哈 为自己写的
首先是关于Jsoup , Jsoup 是网页抓取的首选.但是请注意: 如果Jsoup去抓取的页面的数据,全都是页面加载完成后,ajax获取形成的,是抓取不到的。
具体请看鸿翔的博客. 地址是 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
首先看看Jsoup 的代码:
这个是网页源代码中截取的一段,我们需要去解析这段代码:
[code]<div class="unit"> <h1><a href="http://www.csdn.net/article/2015-05-12/2824667" target="_blank" >万达圆梦“+互联网”的支点:支付</a></h1> <h4>发表于<span class="ago">2015-05-12 15:58</span>|<span class="view_time">1676次阅读</span>|<span class="num_recom">4条评论</span></h4> <dl> <dt> <a href="http://www.csdn.net/article/2015-05-12/2824667" target="_blank"><img src="http://img.ptcms.csdn.net/article/201505/12/5551b25feb70a_thumb.jpg" alt="" /></a> </dt> <dd>万达的布局逻辑是,线下依然核心支柱,而线上则不断完善加快线下产业的发展。而收购的支付——快钱,正是撬动万达快速转型的这个必不可少的支点。有了它,万达可以成为一线电商平台、做互联网金融和推进线下变革。</dd> </dl> <div class="tag"> <a href="http://www.csdn.net/tag/%E4%BA%92%E8%81%94%E7%BD%91/news" target="_blank">互联网</a> <a href="http://www.csdn.net/tag/%E7%A7%BB%E5%8A%A8%E6%94%AF%E4%BB%98/news" target="_blank">移动支付</a> <a href="http://www.csdn.net/tag/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/news" target="_blank">电子商务</a> <a href="http://www.csdn.net/tag/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/news" target="_blank">阿里巴巴</a> <a href="http://www.csdn.net/tag/%E6%94%AF%E4%BB%98%E5%AE%9D/news" target="_blank">支付宝</a> <a href="http://www.csdn.net/tag/%E7%8E%8B%E5%81%A5/news" target="_blank">王健</a> <a href="http://www.csdn.net/tag/%E8%85%BE%E8%AE%AF/news" target="_blank">腾讯</a> <a href="http://www.csdn.net/tag/%E4%B8%87%E8%BE%BE/news" target="_blank">万达</a> </div> </div>
这是使用 Jsoup 解析:
[code] public List<NewItem> getNewsItems(int newsType,int currentPage) throws CommonException{ // 自己写的得到url 地址的工具类 String urlStr = URLUtil.generateUrl(newsType, currentPage); //使用 http 发送get请求 . String htmlStr = DataUtil.doGet(urlStr); List<NewItem> newItems = new ArrayList<NewItem>(); NewItem newItem = null; Document document = Jsoup.parse(htmlStr); Elements units = document.getElementsByClass("unit"); for (int i = 0; i < units.size(); i++) { newItem = new NewItem(); newItem.setNewsType(newsType); Element unit_ele = units.get(i); Element h1_ele = unit_ele.getElementsByTag("h1").get(0); Element h1_a_ele = h1_ele.child(0); String title = h1_a_ele.text(); String href = h1_a_ele.attr("href"); newItem.setLink(href); newItem.setTitle(title); Element h4_ele = unit_ele.child(1); Element span_ele = h4_ele.getElementsByTag("span").get(0); String date = span_ele.text(); newItem.setDate(h4_ele.text() + date); Element d1_ele = unit_ele.getElementsByTag("dl").get(0); Element d1_dt_ele = d1_ele.child(0); // 可能没有图片 try { Element img_ele = d1_dt_ele.child(0).child(0); String imgLink = img_ele.attr("src"); newItem.setImgLink(imgLink); } catch (Exception e) { } Element dl_dd_ele = d1_ele.child(1); String content = dl_dd_ele.text(); newItem.setContent(content); newItems.add(newItem); } return newItems; }
上面的代码不难, 就是解析数据.相信仔细看都可以看懂.
下面总结下HttpUnit :
具体请看鸿翔的博客. 地址是 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
ok 我的第一篇博客 哈哈 为自己写的
相关文章推荐
- HttpUnit 使用示例 抓取网页内容
- 使用java7的try-resource-wi 3ff0 th语法用httpclient抓取网页并用jsoup获取网页对象
- HttpClient+Jsoup 抓取网页信息(网易贵金属为例)
- HttpClient+Jsoup 抓取网页信息
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- 关于使用阿里云服务调用识别身份证图片、营业执照的信息抓取接口的简单实现
- java 使用Jsoup解析URL网页信息
- 关于loadrunner使用web_add_header添加HTTP信息头(比如Content-Type,token等)和使用web_custom_request()提交json数据
- 关于loadrunner使用web_add_header添加HTTP信息头(比如Content-Type,token等)和使用web_custom_request()提交json数据
- 使用httpclient及jsoup从oj上抓取题目信息
- C#使用WebClient登录网站并抓取登录后的网页信息实现方法
- HtmlUnit、Httpclient、Jsoup爬取网页信息并解析
- 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
- C# 使用HtmlAgilityPack抓取网页信息
- .net c# for HttpWebResponse 抓取网页信息走多网卡,配置各种参数
- JSOUP 抓取HTTPS/HTTP网页,校验问题
- Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的
- 使用Jsoup抓取京东图书分类页面图书信息
- 一、使用 BeautifulSoup抓取网页信息信息
- android:获取富文本图片和使用Jsoup抓取腾讯新闻网页数据