今天闲来无事,帮助同学做一个经济学作业的爬虫部分,题目如下:爬自如上面北京的租房数据,包括小区,面积,朝向,区域,租金,大致位置(比如距离某地铁站多少米)这些信息
作为爬虫只写过
page = requests.get(‘link’)
print(page.txt)
这两句的一个纯纯纯小小小小白白白白白,我打算从头开始边学边写整个的函数,把学习的过程记录一下~。
过程中用到的爬虫函数就是最简单的这两个正则表达式:
re.search()
re.findall()
所有的代码我都加了详细的注释,上传到了我的github上。
第一步,获取每个房子的链接
先上自如网上看看这些房子在网页上都是什么一个逻辑:打开了主页http://www.ziroom.com/z/,随便点进一个房子的链接,http://www.ziroom.com/x/807283871.html。发现小区,面积,朝向,租金,大致位置这些信息,除了区域都有了。区域怎么办呢,于是我回去发现原来区域在首页找房子的时候就确定好了。http://www.ziroom.com/z/d23008614/?isOpen=0
一共有13个区域,每一个区域之间的差别仅仅在网址的d2300____后面的几位数里面。遍历一遍就可以了,但是我实在是懒得给这13个区域额外写函数遍历,就直接把各个区域的网址复制下来,做成了一个Array,代码如下
# 手动分出来北京的区域
district = ['d23008614', '东城', 'd23008626', '西城', 'd23008613', '朝阳', 'd23008618', '海淀', 'd23008617', '丰台',
'd23008623', '石景山', 'd23008625', '通州', 'd23008611', '昌平