前几天学习了一个开源的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).*/@Overridepublic 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功能,比较方便准确;

最后的运行结果如下

crawler4j使用初体验之酷房网房源爬取相关推荐

  1. Scrapy 爬虫框架初体验二 —— 以一个新闻站点爬取为例

    一.搭建基础 Scrapy 工程框架 创建项目 输入如下命令: scrapy startproject NewsSpider # 创建项目 cd NewsSpider scrapy genspider ...

  2. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  3. 知网爬虫——爬取某个主题下的文章标题以及发表时间

    前几天帮朋友做了个知网的爬虫,爬取了"新闻传播"主题下的文章标题及发表时间:自己拖拖拉拉写了2天才写完,自己还是太弱了.个人认为这个作为一个练手的爬虫小项目还是不错的,于是写了主要 ...

  4. 酷狗音乐的爬取,基于python,从无到有完整教程-上:搭建环境及爬取原理讲解

    酷狗音乐的爬取,基于python,从无到有完整教程,使用微软新edge作为虚拟浏览器 搭建环境及爬取原理讲解 ⬇⬇⬇ 编码环境及工具准备: 编码工具:PyCharm 所需的库: import requ ...

  5. 多线程爬虫实战--彼岸图网壁纸爬取

    多线程爬虫实战–彼岸图网壁纸爬取 普通方法爬取 import requests from lxml import etree import os from urllib import requesth ...

  6. Scrapy入门、当当网商品爬取实战

    文章目录 一.如何创建Scrapy爬虫项目 二.Scrapy的一些指令说明 三.当当网商品爬取实战 一.如何创建Scrapy爬虫项目 (1) Win+R 打开cmd,假如我要在F盘的Scrapy文件中 ...

  7. 酷狗音乐的爬取,基于python,从无到有完整教程-下:功能代码讲解

    酷狗音乐的爬取,从无到有完整教程-下:功能代码讲解 是的我又回来了,这次是代码的讲解哦. 参数项生成 上一章我们提到,在包含了歌曲url,歌曲信息的请求中,有几个参数项的值是随机数就可以,但是,你仔细 ...

  8. 网易云爬取首页歌单里的所有歌曲

    网易云爬取首页歌单里的所有歌曲 前言:本文章仅供个人参考使用,非商用用途,其中参考了其他的文献资料,如有不妥之处,请联系本人邮箱:wurenjie8@163.com 思路:通过首页URL获取所有首页的 ...

  9. 【selenium爬取】最新版可用某网职位爬取数据

    文章目录 一.某网职位爬取 1.1 selenium的使用 1,2 开始爬取 一.某网职位爬取 共计8000组数据,需要数据和代码的,请到以下链接获取: https://download.csdn.n ...

最新文章

  1. Springlake-01 介绍功能安装
  2. 多看看把,条件太多了--leetcode 93. 复原 IP 地址
  3. 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器
  4. hdu 1255(线段树+离散化)
  5. html树状图右侧_如何在 Tableau 中创建控制图?
  6. 为什么不敢和别人竞争_看懂这个自我评价发展曲线,你就明白,为什么青春期孩子如此叛逆...
  7. css --- 弹性盒子
  8. Docker遇到的一些问题和感想
  9. Linux内核 获取本机mac,Linux获取本机MAC地址
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的医院在线预约挂号系统
  11. 微型计算机发展方向网络化,第二章 会计电算化工作环境
  12. Windows平台下MySQL常用操作与命令
  13. json,pickle,shelve序列化和反序列化
  14. android蓝牙在有效范围内自动连接,android – 如何在范围内找到可用的蓝牙设备?...
  15. Python爬虫之(八)数据提取-Beautiful Soup
  16. 教你轻松解决CSRF跨站请求伪造攻击
  17. Deepin下安装日文输入法
  18. android紫禁城一日游的代码,故宫旅游app下载-故宫旅游 安卓版v3.3.6-PC6安卓网
  19. ES6-Promise简介
  20. matlab之直方图的绘制

热门文章

  1. c语言编写u盘杀毒软件,U盘小偷实现方式(C语言实现)
  2. 2021年豆瓣图书爬取-根据ISBN爬取图书信息
  3. 2013年4月通信概论答案
  4. 软键盘设计的实现与代码分享(TP900掌机)
  5. RD Client 远程控制(手机做主控端)的方法
  6. USB摄像头驱动--LCD显示摄像头图像(附Makefile分析)
  7. Java 服务端 socket 掉线重启后,客户端自动重连
  8. 省钱省不对其实更浪费——分享我装修花钱买来的教训
  9. 怎么画单极交流放大电路波形图_什么是交流电;什么是直流电
  10. 小程序与服务号的区别