步骤

使用composer安装 php抓取扩展包

composer require jaeger/querylist

分析自如首页html结构

经过分析发现区域和地铁数据在类名.clearfix.filterList下面,所以代码可以这么些:

require_once 'vendor/autoload.php';

$url = 'http://www.ziroom.com/z/nl/z3.html';

$ql = \QL\QueryList::get($url);

//地区

$data = $ql->find('.clearfix.filterList:eq(0)>li .tag a')->texts();

$area_son = [];

$area_parent = [];

$area_p_key = '';

foreach ($data as $k => $v) {

if ($v == '全部'){

$area_parent[] = $data[$k-1];

}

}

foreach ($data as $v) {

if (in_array($v,$area_parent)){

$area_p_key = $v;

}

if ($v != '全部' && !in_array($v,$area_parent)){

$area_son[$area_p_key][] = $v;

}

}

//地铁

$data = $ql->find('.clearfix.filterList:eq(1)>li .tag a')->texts();

$subway_son = [];

$subway_parent = [];

$subway_p_key = '';

foreach ($data as $k => $v) {

if ($v == '全部'){

$subway_parent[] = $data[$k-1];

}

}

foreach ($data as $v) {

if (in_array($v,$subway_parent)){

$subway_p_key = $v;

}

if ($v != '全部' && !in_array($v,$subway_parent)){

$subway_son[$subway_p_key][] = $v;

}

}

var_dump($area_parent);

var_dump($subway_parent);

// p($area_son);

// p($subway_son);

得到如下结果

array (size=13)

0 => string '东城' (length=6)

1 => string '西城' (length=6)

2 => string '朝阳' (length=6)

3 => string '海淀' (length=6)

4 => string '丰台' (length=6)

5 => string '石景山' (length=9)

6 => string '通州' (length=6)

7 => string '昌平' (length=6)

8 => string '大兴' (length=6)

9 => string '顺义' (length=6)

10 => string '房山' (length=6)

11 => string '门头沟' (length=9)

12 => string '亦庄开发区' (length=15)

H:\wamp\www\projects\test\test.php:51:

array (size=21)

0 => string '1号线' (length=7)

1 => string '2号线' (length=7)

2 => string '4号线' (length=7)

3 => string '5号线' (length=7)

4 => string '6号线' (length=7)

5 => string '7号线' (length=7)

6 => string '8号线' (length=7)

7 => string '9号线' (length=7)

8 => string '10号线' (length=8)

9 => string '13号线' (length=8)

10 => string '14号线' (length=8)

11 => string '15号线' (length=8)

12 => string '西郊线' (length=9)

13 => string 'S1号线' (length=8)

14 => string '燕房线' (length=9)

15 => string '16号线' (length=8)

16 => string '八通线' (length=9)

17 => string '昌平线' (length=9)

18 => string '亦庄线' (length=9)

19 => string '房山线' (length=9)

20 => string '机场线' (length=9)

Array

(

[东城] => Array

(

[0] => 安定门

[1] => 安贞

[2] => 崇文门

[3] => 朝阳门内

[4] => 东花市

[5] => 地安门

[6] => 灯市口

[7] => 东四

[8] => 东单

[9] => 东直门

[10] => 广渠门

[11] => 和平里

[12] => 交道口

[13] => 金宝街

[14] => 建国门内

[15] => 天坛

[16] => 西罗园

[17] => 永定门

[18] => 左安门

[19] => 北新桥

[20] => 雍和宫

)

[西城] => Array

(

[0] => 白纸坊

[1] => 长椿街

[2] => 车公庄

[3] => 德胜门

[4] => 阜成门

[5] => 广安门

[6] => 官园

[15号线] => Array

(

[0] => 俸伯

[1] => 顺义

[2] => 石门

[3] => 南法信

[4] => 后沙峪

[5] => 花梨坎

[6] => 国展

[7] => 孙河

[8] => 马泉营

[9] => 崔各庄

[10] => 望京东

[11] => 望京

[12] => 望京西

[13] => 关庄

[14] => 大屯路东

[15] => 安立路

[16] => 奥林匹克公园

[17] => 北沙滩

[18] => 六道口

[19] => 清华东路西口

)

[西郊线] => Array

(

[0] => 巴沟

[1] => 万安

[2] => 茶棚

[3] => 颐和园西门

)

[S1号线] => Array

(

[0] => 苹果园

php地铁,php 抓取自如友家首页的区域和地铁数据相关推荐

  1. Python中使用Scrapy爬虫抓取上海链家房价信息

    文章目录 前言 准备工作 创建一个新的Scrapy项目 定义一个爬虫Spider 导出抓取数据 保存数据到数据库(MongoDB) 前言 之前用python写了一个简单的爬虫项目用来抓取上海链家上的一 ...

  2. Python进阶之Scrapy利用ImagesPipeline抓取汽车之家宝马5系缩略图

    Python进阶之Scrapy利用ImagesPipeline抓取汽车之家宝马5系缩略图 1. 创建项目 2. 使用ImagesPipeline爬取数据 items.py setings.py aut ...

  3. python爬虫——抓取自如网房源,导出为csv

    1.抓取自如网房源,其实为了后面一个小项目做数据采集工作 2.为什么选择自如,是因为我做租房的同学说,自如网的房源质量比较高 3.因为博主是暂居深圳,就先以深圳市的房源为示例 base_url = & ...

  4. tesseract破解css反爬抓取自如租房信息

    引言 作为一个刚毕业两年的打工人,在深圳这种房价压死人的城市,买房是不可能买房了,只能寄希望于租到一个便宜又舒适的房子.今天给大家带来的案例是tesseract破解css反爬抓取自如租房信息,将好房源 ...

  5. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱

    前言 大家好,我是晓晨.许久没有更新博客了,今天给大家带来一篇干货型文章,一个每隔5分钟抓取博客园首页文章信息并在第二天的上午9点发送到你的邮箱的小工具.比如我在2018年2月14日,9点来到公司我就 ...

  6. Python实现抓取CSDN博客首页文章列表

    1.使用工具: Python3.5 BeautifulSoup 2.抓取网站: csdn首页文章列表 http://blog.csdn.net/ 3.分析网站文章列表代码: 4.实现抓取代码: __a ...

  7. 抓取了1400家科技公司的招聘信息,我发现数据工程师比数据科学家更有市场

    来源:机器之心本文约2300字,建议阅读6分钟掌握工程技能可能是更重要的. 「作为数据科学家,我还有机会吗?」不,你更应该成为数据工程师. 数据无处不在,而且只会越来越多.在过去的 5-10 年内,数 ...

  8. python scrapy 抓取脚本之家文章(scrapy 入门使用简介)

    老早之前就听说过python的scrapy.这是一个分布式爬虫的框架,可以让你轻松写出高性能的分布式异步爬虫.使用框架的最大好处当然就是不同重复造轮子了,因为有很多东西框架当中都有了,直接拿过来使用就 ...

  9. [Python爬虫] 之十八:Selenium +phantomjs 利用 pyquery抓取电视之家网数据

    一.介绍 本例子用Selenium +phantomjs爬取电视之家(http://www.tvhome.com/news/)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓 ...

最新文章

  1. 简明 HTML CSS 开发规范
  2. 用OpenCV玩《铁拳》!!!
  3. Springboot解决IDEA读取properties配置文件的中文乱码问题
  4. 测试如何学python_如何从0开始学Python自动化测试
  5. 世界上第一台现代计算机是什么
  6. 数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进
  7. 数列分段Section I(洛谷-P1181)
  8. 1.1机器学习基础-python深度机器学习
  9. php生成饼状图 柱形图,求一个饼状图或柱状图php生成类或例子
  10. [软件更新]卡巴斯基全功能安全软件2010简体中文版程序发布
  11. jlink接口定义接stm32_图解Stm32使用jlink程序时jtag接口(SW和JTAG模式)的简化方法
  12. 【艾特淘】淘宝保证金催缴单在哪里,要怎么交?
  13. 网易视频云:为何说张三丰是个优秀的程序员?
  14. 自己动手打造 mini 型 QQ (二):从局域网到互联网的 miniQQ
  15. 逆向unity3d手机游戏
  16. Censored! :ac自动机 + DP
  17. 酷睿i7 11800h和r7 5800h参数对比 锐龙r75800h和酷睿i711800h选哪个好
  18. 利用C语言写一个U盘小偷程序
  19. 工作室课题—贪吃的大嘴(蓝桥杯)
  20. iOS —— 触摸事件传递及响应与手势

热门文章

  1. vs 2019使用Installer Project制作安装包的问题
  2. C语言实验03_判断语句
  3. P1135 奇怪的电梯题解
  4. Machine Learning in Action(5) SVM算法
  5. java使用md5以及jar包下载
  6. 数据结构之树从入门到如土(一)----大话二叉树 及GO实现
  7. 10个优秀的Spring Boot开源项目整理分享
  8. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?
  9. SCOUT 薄膜分析软件
  10. 启用数据空间:让VirtualBox虚拟机中的Ubuntu 10.10和XP主机互通有无