还在为找房子发愁,学会python,爬虫一键帮你搞定!

信息大爆炸的时代,你怎么高效获取有效信息?

本次小案例同样是利用python当中两个关键库,requests和BeautifulSoup,发起请求,解析网页数据,对这两个库的使用不太熟悉的小伙伴可以网上查查资料学习一下,我就不在这过多解释了,主要聊一下怎么用

1、首先,一定要在代码文件开头,将两个工具库导入

import requests
from bs4 import BeautifulSoup

123

2、两个库准备好之后,就可以将发起请求的功能封装在函数体当中

# 获取当前url下的页面内容,返回soup对象
def get_page(link_url):
	response = requests.get(link_url)
	soup = BeautifulSoup(response.text, 'lxml')
	return soup
12345

3、请求发起之后,分析网页代码,找到我们想要的具体链接,存入到列表当中

# 获取所有房源链接
def get_links(url):
	soup = get_page(url)
	# find_all是获取全部信息
	link_div = soup.find_all('div', class_='content__list--item')  # 获取到包含链接的div
	links = [url+div.a.get('href') for div in link_div]  # 列表推导式打印所有房源url
	return links
1234567

利用find_all函数获取soup对象当中所有的content__list–item,将对应的url获取到,并存入列表

4、批量获取到我们的链接信息之后,深入到链接所对应的界面,分析网页端代码,将其封装到函数体中find函数获得单条数据,找到对应div和相应的class的值进行锁定**

money = page_res.find('div', class_='content__aside--title')
danwei = page_res.find('div', class_ = 'content__aside--title')
12

5、其他的信息同样道理,组合使用find_all和find方法获取相应信息

# 房屋信息
house_info = page_res.find_all('div', class_ = 'content__article__info')
house_title = page_res.find('p', class_ = 'content__title')# 房源标题
		
# 基本信息
base_info = page_res.find_all('li', class_ = 'fl oneline')  # 以列表存储
area = base_info[1].text[3:]  # 面积
direction = base_info[2].text[3:]
weihu = base_info[4].text[3:]
ruzhu = base_info[5].text[3:]
floor = base_info[7].text[3:]
dianti = base_info[8].text[3:]
chewei = base_info[10].text[3:]
water = base_info[11].text[3:]  # 用水
elec = base_info[13].text[3:]  # 用电
ranqi = base_info[14].text[3:]  # 燃气
cainuan = base_info[16].text[3:] # 采暖
zuqi = base_info[18].text[3:]  # 租期
kanfang = base_info[21].text[3:]  # 看房
12345678910111213141516171819

6、使用字典进行存储,方便管理

global info
		info = {
			"房屋标题":house_title.text,
			"房屋链接":i,
			"价格":money.find('span').text+danwei.text[5:8],
			"面积":area,
			"朝向":direction,
			"维护":weihu,
			"入住":ruzhu,
			"楼层":floor,
			"电梯":dianti,
			"车位":chewei,
			"用水":water,
			"用电":elec,
			"燃气":ranqi,
			"采暖":cainuan,
			"租期":zuqi,
			"看房":kanfang
		}
12345678910111213141516171819

最后按需遍历即可,放一部分结果如下图:

是不是非常简单。源码获取加群:850591259

猜你喜欢

转载自blog.csdn.net/weixin_43881394/article/details/107729663