crawler4j使用初体验之酷房网房源爬取
前几天学习了一个开源的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使用初体验之酷房网房源爬取相关推荐
- Scrapy 爬虫框架初体验二 —— 以一个新闻站点爬取为例
一.搭建基础 Scrapy 工程框架 创建项目 输入如下命令: scrapy startproject NewsSpider # 创建项目 cd NewsSpider scrapy genspider ...
- python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)
Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...
- 知网爬虫——爬取某个主题下的文章标题以及发表时间
前几天帮朋友做了个知网的爬虫,爬取了"新闻传播"主题下的文章标题及发表时间:自己拖拖拉拉写了2天才写完,自己还是太弱了.个人认为这个作为一个练手的爬虫小项目还是不错的,于是写了主要 ...
- 酷狗音乐的爬取,基于python,从无到有完整教程-上:搭建环境及爬取原理讲解
酷狗音乐的爬取,基于python,从无到有完整教程,使用微软新edge作为虚拟浏览器 搭建环境及爬取原理讲解 ⬇⬇⬇ 编码环境及工具准备: 编码工具:PyCharm 所需的库: import requ ...
- 多线程爬虫实战--彼岸图网壁纸爬取
多线程爬虫实战–彼岸图网壁纸爬取 普通方法爬取 import requests from lxml import etree import os from urllib import requesth ...
- Scrapy入门、当当网商品爬取实战
文章目录 一.如何创建Scrapy爬虫项目 二.Scrapy的一些指令说明 三.当当网商品爬取实战 一.如何创建Scrapy爬虫项目 (1) Win+R 打开cmd,假如我要在F盘的Scrapy文件中 ...
- 酷狗音乐的爬取,基于python,从无到有完整教程-下:功能代码讲解
酷狗音乐的爬取,从无到有完整教程-下:功能代码讲解 是的我又回来了,这次是代码的讲解哦. 参数项生成 上一章我们提到,在包含了歌曲url,歌曲信息的请求中,有几个参数项的值是随机数就可以,但是,你仔细 ...
- 网易云爬取首页歌单里的所有歌曲
网易云爬取首页歌单里的所有歌曲 前言:本文章仅供个人参考使用,非商用用途,其中参考了其他的文献资料,如有不妥之处,请联系本人邮箱:wurenjie8@163.com 思路:通过首页URL获取所有首页的 ...
- 【selenium爬取】最新版可用某网职位爬取数据
文章目录 一.某网职位爬取 1.1 selenium的使用 1,2 开始爬取 一.某网职位爬取 共计8000组数据,需要数据和代码的,请到以下链接获取: https://download.csdn.n ...
最新文章
- Springlake-01 介绍功能安装
- 多看看把,条件太多了--leetcode 93. 复原 IP 地址
- 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器
- hdu 1255(线段树+离散化)
- html树状图右侧_如何在 Tableau 中创建控制图?
- 为什么不敢和别人竞争_看懂这个自我评价发展曲线,你就明白,为什么青春期孩子如此叛逆...
- css --- 弹性盒子
- Docker遇到的一些问题和感想
- Linux内核 获取本机mac,Linux获取本机MAC地址
- 基于JAVA+SpringMVC+Mybatis+MYSQL的医院在线预约挂号系统
- 微型计算机发展方向网络化,第二章 会计电算化工作环境
- Windows平台下MySQL常用操作与命令
- json,pickle,shelve序列化和反序列化
- android蓝牙在有效范围内自动连接,android – 如何在范围内找到可用的蓝牙设备?...
- Python爬虫之(八)数据提取-Beautiful Soup
- 教你轻松解决CSRF跨站请求伪造攻击
- Deepin下安装日文输入法
- android紫禁城一日游的代码,故宫旅游app下载-故宫旅游 安卓版v3.3.6-PC6安卓网
- ES6-Promise简介
- matlab之直方图的绘制