tetreum / xupopter
Xupopter 爬取西班牙主要房地产买卖网站,如 Idealista、Fotocasa、Habitatclia、Pisos.com
dev-master
2018-10-27 17:36 UTC
Requires
- querypath/querypath: >=3.0.0
Requires (Dev)
- phpunit/phpunit: 4.5.*
This package is auto-updated.
Last update: 2020-01-13 20:43:34 UTC
README
编辑:我已经买了房子,所以不再维护。
Xupopter
Xupopter 爬取西班牙知名房地产买卖和租赁网站。
爬取的供应商列表
- Pisos.com
- Habitaclia.com
- Fotocasa.es
- Idealista.com
为什么?
某些网站的可用性较差。其他网站缺乏过滤器(我已经厌倦了排除包含赠与[即使用权]的出售房屋)。
安装
composer require tetreum/xupopter dev-master
一个供应商停止工作!没有爬取X数据!
太好了,修复它并提交PR。
一些结果没有被爬取!
Xupopter 对爬取房屋的最小特征(如图片和平方米数)有要求。不符合这些要求的结果将被丢弃。
房屋对象
- 标题
- 描述
- 价格
- URL
- 平方米
- 图片
-- 可选参数
- hasAirConditioner
- hasElevator
- floor
使用示例
一个每日的cron作业。
- bootstrap.php
<?php // Includes vendor libraries require "vendor/autoload.php"; use Xupopter\System\App as Xupopter; define('APP_ROOT', __DIR__ . DIRECTORY_SEPARATOR); date_default_timezone_set("Europe/Madrid"); // Include configurations and global constants Xupopter::$config = require "conf.php";
- conf.php
<?php return [ 'tmp' => APP_ROOT . 'tmp/', // in debug mode, html curls will be cached 'mode' => 'production', 'debug' => false, 'test' => false, 'providers' => [ 'Habitaclia' => [ "/comprar-vivienda-en-barcelones/provincia_barcelona/listainmuebles.htm?bolIsFiltro=0&tip_op_origen=V&hUserClickFilterButton=&filtro_periodo=0&hMinLat=&hMinLon=&hMaxLat=&hMaxLon=&hUseLatLonFilters=&hNumPointsMapa=&ordenar=pvp_inm_desc&f_con_fotos=0" ], 'Fotocasa' => [ '/comprar/casas/barcelona-capital/listado?crp=1&ts=barcelona%20capital&llm=724,9,8,232,376,8019,0,0,0&f=publicationdate&o=asc&opi=36&ftg=true&pgg=false&odg=false&fav=false&grad=false&fss=false&mode=3&cu=es-es&pbti=2&nhtti=1&craap=1&fs=true&lon=0&lat=0&fav=false' ], 'Pisos' => [ '/venta/pisos-barcelones/desc/' ], "Idealista" => [ "/venta-viviendas/barcelona-barcelona/?ordenado-por=precio-desc" ] ], "avoid" => [ 'text' => [ // text == title + description "usufructo", "beneficiario", ], "location" => [ "ciutat meridiana", "trinitat nova", "trinitat vella", "carmel", "roquetes" ] ] ];
- cron.php
<?php set_time_limit(0); require 'bootstrap.php'; use Xupopter\System\App; foreach (App::config('providers') as $pName => $paths) { App::runProvider($pName, $paths, function ($house) { // callback fired for each crawled house // echo $house->title . " - " . $house->price . "€"; // $mysql->query("INSERT INTO houses... }); }
待办事项
- 用于检测URL来自哪个供应商并转发给同一供应商的功能。
- 重构回调函数的实现
- 爬取 Idealista 的发布日期
- 添加更多供应商