crawler4j使用初体验之酷房网房源爬取
来源:互联网 发布:网络规划设计师 编辑:程序博客网 时间:2024/04/30 20:04
前几天学习了一个开源的java爬虫框架crawler4j,在摸索了一段时间后写了一个爬虫demo,特此记录分享,框架的搭建和方法的意义什么的就不详细说明了,网上有很多相关的教程可以看一下;
根据官方demo还是将爬虫分为两个类
一个controller类
一个crawler类
controller类我简单的修改了爬虫种子
controller.addSeed("http://jinan.koofang.com/sale/c1/pg1");
crawler类的修改
修改了筛选规则
private final static Pattern FILTERS = Pattern.compile(".*(\\.(css|js|" + "|tiff?|mid|mp2|mp3|mp4" + "|wav|avi|mov|mpeg|ram|m4v|pdf" + "|rm|smil|wmv|swf|wma|zip|rar|gz))$"); /** * You should implement this function to specify whether the given url * should be crawled or not (based on your crawling logic). */ @Override public boolean shouldVisit(Page referringPage, WebURL url) { String href = url.getURL().toLowerCase(); if(FILTERS.matcher(href).matches()){ return false; } if(href.contains("sale/c1/pg")){ return true; } return false; }
修改了页面处理的方法
public void visit(Page page) { String url = page.getWebURL().getURL(); System.out.println(url); if (page.getParseData() instanceof HtmlParseData) { HtmlParseData htmlParseData = (HtmlParseData) page.getParseData(); String text = htmlParseData.getText(); String html = htmlParseData.getHtml(); Set<WebURL> links = htmlParseData.getOutgoingUrls(); Document doc = Jsoup.parse(html); Elements items = doc.getElementsByClass("miaoshu"); for (Element item : items) { String name = item.select("#mh_area").text(); String size1 = item.select("div > div.xiangxi_left > p.map_house > span:nth-child(2)").text(); String size2 = item.select("div > div.xiangxi_left > p.map_house > span:nth-child(3)").text(); String address = item.select("div > div.xiangxi_left > p:nth-child(4)").text(); String cost = item.select("div > div.xiangxi_right > div.xiangxi_right_price_com > div.xiangxi_right_price.fl > span").text(); String per = item.select("div > div.xiangxi_right > div.xiangxi_right_danjia").text(); String link = item.select("#biaoti_a").attr("href"); System.out.println(name+" "+size1+" "+size2+" "+address+" "+cost+"万元 "+per+" "+link); } } }
其中元素的selector选取,可以使用浏览器的copy selector功能,比较方便准确;
最后的运行结果如下
1 0
- crawler4j使用初体验之酷房网房源爬取
- crawler4j爬虫--爬取技巧总结(鄙人之见)
- 诸葛找房房源信息爬取
- 利用python爬取我爱我家租赁房源信息
- 房源
- Crawler4j的使用
- 使用crawler4j框架爬爬知乎
- 使用Crawler4j总结
- 爬虫初体验-- 爬取当当书籍
- 开源JAVA爬虫crawler4j源码分析 - 2 开始使用crawler4j
- Hadoop2.2.0使用之初体验
- RxJava 之 Android使用初体验
- RecyclerView使用案例二之初体验
- crawler4j 源码解读之配置文件configurable
- 一次取最新客户评级的sql体验之旅
- win7使用之切身体验
- APICloud之使用体验篇
- python 爬香港591房源 https://rent.591.com.hk/
- Labview 局部变量
- QT控制界面鼠标
- MFC文本、图形、图像、GDI+处理
- webpack 2 入门
- tomcat server.xml配置详解
- crawler4j使用初体验之酷房网房源爬取
- Java源码心中有数系列 java.lang.thread
- 萌宠天天斗全套美术资源下载
- Lead()和Lag() 分析函数
- 【unity小技巧之七】突然不能编辑PolygonCollider2d的点
- Linux下基于Platform总线led驱动学习(一)
- 图解SQL的JOIN
- Hibernate中Criteria的完整用法
- Windows NT 下Service 的 编 程