利用python爬取租房信息_如何绕过python反爬虫获取租房信息?

为了寻求一些更好的发展机会,很多人选择去一些大城市工作,租房子就是其中要考虑的一个大问题。最近有小伙伴问小编python中有没有搜集一些租房信息的方法,小编收到后就用python爬虫试了一下,但是遇到了反爬虫的阻拦,不过最终还是通过修改代码解决了。接下来我们就一起看看绕过python反爬虫获取租房信息的方法吧。

在有的页面后面会出现一段代码,通过禁用浏览器JavaScript发现每页其实初始界面是一段JS代码,然后跳转至目标页

百度了一下这种反爬虫的绕过措施都是Python加载JS代码,自己感觉比较麻烦就没有实施,但是在查看网页源代码时发现了下面这段代码,其目的应该是检测到移动端跳转至移动端网页

既然使用了Ajax,抓包抓一下浏览时传输的数据就得到了下面的URL

上图黄色画出的就是每次向下浏览加载的页面,通过修改后面的数字可以定位不同的页面,构造URL,那么剩下的就是爬取数据了,下面贴一下简略代码import requests

from lxml import etree

import xlwt

import time

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome'

'/70.0.3538.110 Safari/537.36'

}

all_info_list = []

def get_photo(url):

res = requests.get(url, headers=headers)

selector = etree.HTML(res.text)

divs = selector.xpath('//div[@class="list_con"]')

for div in divs:

names = div.xpath('div[2]/h3/text()')[0].strip()

types = div.xpath('div[2]/p[1]/text()[1]')[0]

area = div.xpath('div[2]/p[1]/text()[2]')[0]

direction = div.xpath('div[2]/p[1]/text()[3]')[0]

price = div.xpath('div[2]/div/p/text()')[0]

info_list = [names, types, area, direction, price]

all_info_list.append(info_list)

time.sleep(1)

if __name__=='__main__':

urls = ['https://m.5i5j.com/bj/zufang/index-_%E6%9C%9B%E4%BA%AC/n{}'.format(str(i)) for i in range(1,4)]

for url in urls:

get_photo(url)

xls_header = ['地点', '户型', '面积', '朝向', '价格']

book = xlwt.Workbook(encoding='utf-8')

sheet = book.add_sheet('5i5j')

for h in range(len(xls_header)):

sheet.write(0,h,xls_header[h])

i = 1

for list in all_info_list:

j = 0

for data in list:

sheet.write(i, j, data)

j += 1

i += 1

book.save('5i5j.xls')

通过代码修改之后,我们就可以获取一些想要的租房信息,相信有很多在外工作需要租房的小伙伴,迫切的需要学会这个方法。话不多说,赶快打开电脑跟随小编的方法试试吧。更多Python学习指路:PyThon学习网教学中心。

### 安居客出租房(武汉为例)爬虫+数据分析+可视化 这个爬虫是我前段时间在淘宝上做单子的时候遇见的一个客户需求。本来以为就是一个简单的爬虫项目。但后面客户加了数据清洗和数据分析的要求。而后又加了要详细代码解释的需求等等。直到最后客户坦白说这是他们大专的毕设.......但是这个单子坐下来只有200左右,我想了一下,感觉好亏啊。在淘宝上随便找一个做毕设的都要好多钱的,而且客户本身的代码能力、数学、逻辑能力都很差,导致我每行都给注释以及看不懂,在我交付代码后又纠缠了我一个多礼拜。正总体做下来的感觉就是烦躁。头一次感觉到了客户需求变更带来的巨大麻烦。 总之这是一次不是很愉快的爬虫经历。但是作为我写爬虫以来注释最详细的一次,以及第一次真正使用像matplotlib这种数据分析库的代码,我认为还是有必要分享出来给大家当个参考的(PS:大佬轻拍~)。爬虫本身几乎没有什么难度,写的也比较乱,敬请见谅。 **功能** 爬取安居客上的出租房信息(武汉地区的),并通过爬取的数据进行数据清洗以及数据分析。给出四个不同层面的可视化图。最终结果如下图所示: ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/1.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/2.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/3.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/4.png) **环境** 1. Windows 10 2. python3.7 **使用方法** 首先声明该爬虫由于是特定情况下写的,所以本身的通用性特别差,仅可以对安居客网站上的武汉的出租房信息进行爬取,且需要自己手动更新cookie。同时在对数据进行分析及可视化的时候由于也是特别针对武汉出租房的进行的,所以针对性也比较强。如果别的需求需要自己进行更改。 1. 访问[安居客网址](https://wuhan.anjuke.com/),获取cookie。 > tip:获取cookie的方法可根据[此链接](https://jingyan.baidu.com/article/5d368d1ea6c6e33f60c057ef.html) 2. 在项目中找到`spider.py`的文件,将第12行的cookie换成你自己的cookie。 3. 运行`spider.py`,获取房源信息。运行后应会产生一个`武汉出租房源情况.csv`的文件。此文件为我们从安居客上爬取的房源信息,其中包含`房屋租住链接、房屋描述、房屋地址、房屋详情(户型)以及经纪人、房屋价格`五个属性。 4. 在获取了数据之后我们运行`matplotlib.py`文件。进行数据清洗,分析,可视化。运行后即可获得**功能**中展示四个图片。 **技术栈** 1. request 2. parsel 3. pandas 4. matplotlib **进步(相比之前)** 此次爬虫相比之前的技术上可以说有减无增。但其中注释相当详细,可谓是每行代码都有注释。所以对于初学者应该有一些用处。同时使用matplotlib进行了数据分析可视化等。对于数据处理的代码的注释也是几乎每行都有注释的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值