对于网页数据的爬取,常用的软件有火车采集器与八爪鱼采集器,本文呢我们就以火车采集器(文末有安装包分享)分享链家网二手房的房源信息爬取。爬取过程可以大致分为两个部分:(一)寻找网页规则;(二)设置爬取规则;(1)采集网址规则;(2)采集内容规则;(3)发布内容设置。第一个部分是相对比较难的部分,那么话不多说,我们就直接开始吧...
第一部分 寻找网页规则
我们先打开链家网的网址:https://gz.lianjia.com/
地点选择广州(为例),点击上方【二手房】进入初级页面。
![86993c754303ffb756146ccff09834ef.png](https://img-blog.csdnimg.cn/img_convert/86993c754303ffb756146ccff09834ef.png)
网页中间这里的(区域、售价、房型、面积)等标签我们暂时先不选择,我们就爬取整个广州的试试,我们先拉到网页下面看看。
![279bc07b1506073a2483e1665c281e17.png](https://img-blog.csdnimg.cn/img_convert/279bc07b1506073a2483e1665c281e17.png)
下面就是一些基本的房源信息,每页大概有30个房源。
![51ce95473ef23a2fe6c20b04b7d55eba.png](https://img-blog.csdnimg.cn/img_convert/51ce95473ef23a2fe6c20b04b7d55eba.png)
我们要做的第一步,就是寻找网页规则:,我们先拉到网页最下面,我们分别点开第2页、第3页、第4页、第5页,会发现有个惊天的秘密...
![509c5a449f1d5da155b6d8620f3a2785.png](https://img-blog.csdnimg.cn/img_convert/509c5a449f1d5da155b6d8620f3a2785.png)
![5afdbb5ca3c339d898a0d34a1ce4f17b.png](https://img-blog.csdnimg.cn/img_convert/5afdbb5ca3c339d898a0d34a1ce4f17b.png)
![37fbc621afbf9eaacc678985e9084c3d.png](https://img-blog.csdnimg.cn/img_convert/37fbc621afbf9eaacc678985e9084c3d.png)
![499d643f531a244caf90de7cd298975e.png](https://img-blog.csdnimg.cn/img_convert/499d643f531a244caf90de7cd298975e.png)
我们会发现每一页的网址其实有规律可循:
第2页:https://gz.lianjia.com/ershoufang/pg2/
第3页:https://gz.lianjia.com/ershoufang/pg3/
第4页:https://gz.lianjia.com/ershoufang/pg4/
第5页:https://gz.lianjia.com/ershoufang/pg5/
...
可是,我们又发现第1页的网址并不符合这样的规律,第1页的网址是https://gz.lianjia.com/ershoufang/。
按理来说,它应该是这样的:https://gz.lianjia.com/ershoufang/pg1/
![e6511bbb10c9da1515ecaeb7d8f85b2c.png](https://img-blog.csdnimg.cn/img_convert/e6511bbb10c9da1515ecaeb7d8f85b2c.png)
不过打开这两个网址,
我们发现两个网页上的内容完全一致,所以这个规律对于第1页同样适用,因此我们就已经初步地把网址的分页规则给识别出来了。
![529e423503817e7b0147d003f163694e.png](https://img-blog.csdnimg.cn/img_convert/529e423503817e7b0147d003f163694e.png)
我们要做的第二步,就是寻找房源规则:
我们先任意点开同一页的三个房源信息:
![8c07e682cbb04e7b415eeb38a05281a7.png](https://img-blog.csdnimg.cn/img_convert/8c07e682cbb04e7b415eeb38a05281a7.png)
![3aa99e4b274f90c092f7c45ad228f3f2.png](https://img-blog.csdnimg.cn/img_convert/3aa99e4b274f90c092f7c45ad228f3f2.png)
![58beacf97a3ba14ee74aa5d6698edc5b.png](https://img-blog.csdnimg.cn/img_convert/58beacf97a3ba14ee74aa5d6698edc5b.png)
我们会发现它们的网址也有规律可循,就是后面这个数字不一样:
https://gz.lianjia.com/ershoufang/108400553948.html
https://gz.lianjia.com/ershoufang/108400416576.html
https://gz.lianjia.com/ershoufang/108400549521.html
那么我们就把这个房源规则找出来了。
按照以上的规则,我们首先可以获取到链家网二手房每一页的网址,然后可以获取每一页网址上每个房源信息的网址,有了每个房源信息的网址,我们就可以爬取有关房源的相关信息了,这就是网页信息爬取的逻辑。
第二部分 设置爬取规则
第①步:采集网址规则
我们首先第一步打开火车采集器8.5版本,初试界面就是这样:
![313ddb7e6e3f1381434323ab5a787512.png](https://img-blog.csdnimg.cn/img_convert/313ddb7e6e3f1381434323ab5a787512.png)
我们先新建一个分组,命名为“火车采集”,然后选中这个分组,新建任务,任务名就叫“链家二手房”,然后在其起始网址这里我们选择【添加】
![5faa474a3e6c04ec33558c5047b2d71e.png](https://img-blog.csdnimg.cn/img_convert/5faa474a3e6c04ec33558c5047b2d71e.png)
“添加开始采集地址”这里我们选择【批量/多页】,因为我们要爬取的是多页上的房源信息。地址格式我们就把第2页(除第1页外的其它页都可以)的网址(https://gz.lianjia.com/ershoufang/pg2/)复制粘贴上去,并把网址中的“2”选中点击最右边的【(※)】按钮,此举是为了将2这一页码数设置成变量。因为之前我们看网页规则,就知道每一页基本上就只有后面的数字在变。然后选择【等差数列】,首项为“1”,项数为“5”,公差为“1”,这个是为页码参数设置的,意味着我们要爬取的是第1—5页,如果要爬取更多的页,把项数修改成要爬的页数就可以,然后选择【添加】,再点击【完成】即可。
![462347a7dcd9b8e5376d2145ac7bdfac.png](https://img-blog.csdnimg.cn/img_convert/462347a7dcd9b8e5376d2145ac7bdfac.png)
起始网址设置完成之后,我们在“多级网址获取”这里点击【添加】。
![d07ea4e463a67232284710d24e75b282.png](https://img-blog.csdnimg.cn/img_convert/d07ea4e463a67232284710d24e75b282.png)
然后选择“网址获取选项”,选择“从页面自动分析得到地址链接”,在结果网址过滤这里,在“必须包含”内容框中填入房源信息的二级网址即(https://gz.lianjia.com/ershoufang/108400572613.html),之前我们已经找到二级网址的规则就是后面的108400572613是变化的,意味着它就是那个参数,那么按照第一步的做法,选中这一串数字,点击最右边的【(※)】将它设置成参数,意味着我们将爬取的每个房源信息都是长这个样子的。
![d96f70761c9b76a9b9f9fd724c11fb51.png](https://img-blog.csdnimg.cn/img_convert/d96f70761c9b76a9b9f9fd724c11fb51.png)
接着我们需要获取Cookie,Cookie是指某些网站为了辨别用户身份,进行 跟踪而储存在用户本地终端上的数据。我们点击【浏览器登陆获取】即可。
![7e6fa442aacebd3bb99a35c51b3152d1.png](https://img-blog.csdnimg.cn/img_convert/7e6fa442aacebd3bb99a35c51b3152d1.png)
点击之后,在弹出框里我们把网址(链家官网)复制上去,等待网页刷新之后,就会生成一个Cookie,我们点击【确定】即可。(此外还有不能返回Cookie的网站,我们需要通过Fiddler软件来找到Cookie,详情请参考下面:https://jingyan.baidu.com/article/e4511cf3326d832b855eaf73.html)
![eb692ac128ab26efbd3c533736466faf.png](https://img-blog.csdnimg.cn/img_convert/eb692ac128ab26efbd3c533736466faf.png)
这样,我们就把第一步“采集网址规则”中的起始网址、多级网址以及登陆Cookie设置好了,可以开始进行第二步,正式爬取数据了。
![25d40de3de64babb72155f53ea8241a1.png](https://img-blog.csdnimg.cn/img_convert/25d40de3de64babb72155f53ea8241a1.png)
第②步:采集内容规则
首先我们删除这些软件自带的默认标签(标题、内容、作者、时间、出处)
![3393c4861564f57675930572e590d4c5.png](https://img-blog.csdnimg.cn/img_convert/3393c4861564f57675930572e590d4c5.png)
我们任意打开一个房源信息,只要是网页上有的我们双眼能看得到的东西,通常来说都能爬取。
比如,我们就以爬取这个房源的【名称】、【总价】以及【经纬度】为例,进行示范操作,通常下面如果附有地图的话就有经纬度。
![0db7003f8b338bb4a4385832100896a7.png](https://img-blog.csdnimg.cn/img_convert/0db7003f8b338bb4a4385832100896a7.png)
拉到网页下面,我们可以找到一个百度地图,地图上标注着这个房源所在的位置,这也就意味着我们能够爬取到它的经纬度信息。
![fdf3e4d0ed4cd817ef8afe6cc2e020f0.png](https://img-blog.csdnimg.cn/img_convert/fdf3e4d0ed4cd817ef8afe6cc2e020f0.png)
在房源网页中右键打开【检查】和【查看网页源代码】,在【检查】页面选择上方的箭头,然后把箭头放在房源名称(彩虹楼,一梯两户......)上,然后在右侧会显示这一行的代码,我们复制代码标签【】,在网页源代码中我们【Ctrl+F】把代码标签复制检索,就能找到代码标签的所在位置,并且是唯一的,不会有第二个,这样才能精确地定位我们所需要爬取的数据的位置。
![fb2cc280c2d871556e4ac3e90d2c0344.png](https://img-blog.csdnimg.cn/img_convert/fb2cc280c2d871556e4ac3e90d2c0344.png)
![83cfdd6f800662064716661b78fabd4e.png](https://img-blog.csdnimg.cn/img_convert/83cfdd6f800662064716661b78fabd4e.png)
可以看到,房源名称所在行的代码为:
,我们可以通过前后截取获取房源名称。
点击【添加】一个标签,将标签名设置为【名称】,开始字段设置为【 title="】,结束字段就设置为【">】即可,点击确定。
![5fad02737831c901f4ad5756be603eb2.png](https://img-blog.csdnimg.cn/img_convert/5fad02737831c901f4ad5756be603eb2.png)
对于房价,同样的道理,先找代码标签,然后再前后截取。这里必须要强调代码标签必须是唯一的,如果代码不是唯一的,将无法定位数据所在位置。
我们先在检查中找到代码标签【】
复制到网页源代码搜索,可以看到这个标签是唯一的(右上角1/1):
![2ea88650db14a7e3c5f866498ab517d2.png](https://img-blog.csdnimg.cn/img_convert/2ea88650db14a7e3c5f866498ab517d2.png)
点击【添加】一个标签,将标签名设置为【总价】,开始字段设置为【】,结束字段就设置为【
】,确定即可。
![86abad65e5b19684c11e359f2ff59ba0.png](https://img-blog.csdnimg.cn/img_convert/86abad65e5b19684c11e359f2ff59ba0.png)
同样,对于经纬度的话,我们直接在【网页源代码】中搜索,通常来说,经纬度的英文为lat(纬度)和lng(经度)或者position(定位)。
![e96cf191577d8db4707937ab1397905b.png](https://img-blog.csdnimg.cn/img_convert/e96cf191577d8db4707937ab1397905b.png)
可以看到,这行的代码为:resblockPosition:'113.306902,23.050961',
我们点击【添加】一个标签,将标签名设置为【经度】,开始字段设置为【resblockPosition:'】,结束字段就设置为【,】,确定即可。
![54efa1bfe687022c73e139461d8a1773.png](https://img-blog.csdnimg.cn/img_convert/54efa1bfe687022c73e139461d8a1773.png)
点击【添加】一个标签,将标签名设置为【纬度】,开始字段设置为【resblockPosition:'113.306902,】,因为经度是变量,我们就把它设置为参数,【resblockPosition:'(※),】结束字段就设置为【',】即可
![0617fadf41d995976d3e166d12cde8f1.png](https://img-blog.csdnimg.cn/img_convert/0617fadf41d995976d3e166d12cde8f1.png)
任意选择一个房源信息的网址,把它复制到“典型页面中”,点击【测试】,我们可以看到,通过我们设置的采集规则,所需要的数据能够爬下来。说明爬取的内容规则我们已经设置完毕,接下来就设置一下保存路径就可以了。
![7740a0bd8d0c6a0c3740187b90f577c3.png](https://img-blog.csdnimg.cn/img_convert/7740a0bd8d0c6a0c3740187b90f577c3.png)
第三步 发布内容设置
点击“第三步:发布内容设置”,勾选【启用:方式二:保存为本地Word、Excel、Html、txt等文件】,【保存文件格式】设置为“所有记录保存在一个csv文件”,【保存位置】设置随便输入,这里我就直接保存在桌面,【文件模板】留到后面,【文件名格式】随便输入,【文件编码】选择“UTF-8”。
![777a76593566c19506ef39284211d41d.png](https://img-blog.csdnimg.cn/img_convert/777a76593566c19506ef39284211d41d.png)
对于文件模板,火车采集器会事先给我们一个模板,就在安装目录下,名称为【默认csv模板】的csv文件,我们先把它复制到桌面,再用记事本打开。
![e1cfffe77d32dbac67504fa670077c37.png](https://img-blog.csdnimg.cn/img_convert/e1cfffe77d32dbac67504fa670077c37.png)
打开模板之后是这样的:
![99dae974b537ea2749e20bb0b20e755d.png](https://img-blog.csdnimg.cn/img_convert/99dae974b537ea2749e20bb0b20e755d.png)
我们按照之前添加的4个【标签】(总价、名称、经度、纬度),更改如下,注意各个标签名要与火车采集器上添加的一样,同时逗号为英文。
![b546963191e91979e6cac4d9fddd09dd.png](https://img-blog.csdnimg.cn/img_convert/b546963191e91979e6cac4d9fddd09dd.png)
改好之后,我们另存为一个后缀名为csv的txt文件,命名为最终模板。
![e8d95ba75ccfddd923dccba8d92c0deb.png](https://img-blog.csdnimg.cn/img_convert/e8d95ba75ccfddd923dccba8d92c0deb.png)
这时,我们再回到火车采集器这里,把刚刚保存的
【最终模板】
上传。
![5d6616afa4efbe39e845f88f37588bf5.png](https://img-blog.csdnimg.cn/img_convert/5d6616afa4efbe39e845f88f37588bf5.png)
保存之后,软件就会自动提示你“新建任务成功”!
![a1949166f094ba6e8ed1c9c5e4cd52f0.png](https://img-blog.csdnimg.cn/img_convert/a1949166f094ba6e8ed1c9c5e4cd52f0.png)
点击
【确定】
,然后把分组以及分组下的任务两行的六个空格全部勾选上,然后点击
【开始】
按钮,那么数据就已经开始在爬取了。
![16be2fd070f81ff41870d804f964823d.png](https://img-blog.csdnimg.cn/img_convert/16be2fd070f81ff41870d804f964823d.png)
爬取成功界面:
![e9911a095e47bdb1fe311577b2982088.png](https://img-blog.csdnimg.cn/img_convert/e9911a095e47bdb1fe311577b2982088.png)
最终爬取的数据,我们一共爬取的是5页数据,每页30个房源,所以总共是150个,并且我们要的名称、总价、经纬度都给爬取下来了:
![ab97ba75682753c72f62dabd79494e1f.png](https://img-blog.csdnimg.cn/img_convert/ab97ba75682753c72f62dabd79494e1f.png)
对于爬取数据,比较推荐Chrome谷歌浏览器,选择【链家网】作为爬取的对象,是因为它的网页结构比较简单,今天我们分享的算是比较初级的网页数据爬取方法,关键的是学会找出网页规则。
对于一些难以发现规律的复杂网页,我们以后还会分享全网页数据的爬取、循环标签以及POST请求的使用。
这里把火车采集器的安装包分享给大家:
(7天有效)
链接:https://pan.baidu.com/s/1flQC9TRhIli_lof5yfV17g
提取码:eu9k
拓展阅读:
【胡说八道01】地理如何影响人类历史并决定当今世界?
【地理信息01】ArcMap中CAD数据 / 坐标数据(表格数据)的加载
【地理信息02】最最最纠结的基础知识——坐标系的认识与转换
【地理信息03】基于LSV地图+手机GPS定位的现状调研数据库构建
【地理信息04】选址基础分析——以简单数据为例分析租房选址
【地理信息05】城市土地变更以及规划实施评价
【地理信息06】基于GIS平台的城市多网点设施布局评估
![ed3f48d705286cff81aca8a9d20663fc.png](https://img-blog.csdnimg.cn/img_convert/ed3f48d705286cff81aca8a9d20663fc.png)