专业的编程技术博客社区

网站首页 > 博客文章 正文

零基础学习-python爬取各大地区房源信息

baijin 2024-10-24 08:44:04 博客文章 7 ℃ 0 评论

爬取内容:获取房源信息,包括朝向,户型,面积,价格等,并把内容保存在excel中。

效果图:

准备工作:需要准备三个python库,分别为如下:

(1)requests库:主要是为了获取网页中数据信息

(2)BeautifulSoup库:主要是将获取到的信息转换为xml文件

(3)lxmt:主要将生成的list数据存入到excel表格中

第一部分:

获取房源信息:

def GetHouseInfoList(url):
    house = []
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER'}
    # 从网页获取信息
    res = requests.get(url, headers=headers)
    # 解析内容
    soup = BeautifulSoup(res.content, 'html.parser')
    # 房源title
    housename_divs = soup.find_all('div', class_='title')
    for housename_div in housename_divs:
        housename_as = housename_div.find_all('a')
        for housename_a in housename_as:
            # 标题
            houseName = []
            houseName.append(housename_a.get_text())
            houseName.append(housename_a.get('href'))
            house.append(houseName)
    huseinfo_divs = soup.find_all('div', class_='houseInfo')
    for i in range(len(huseinfo_divs)):
        info = huseinfo_divs[i].get_text()
        infos = info.split('|')
        house[i].append(infos[0])
        house[i].append(infos[1])
        house[i].append(infos[2])
    house_prices = soup.find_all('div', class_='totalPrice')
    for i in range(len(house_prices)):
        # 价格
        price = house_prices[i].get_text()
        house[i].append(price)
    return house

requests.get(url, headers=headers):从网页中获取数据

soup = BeautifulSoup(res.content, 'html.parser'):将网页的内容转化成html数据格式,方便后面数据的解析

soup.find_all('div', class_='title'):主要是去获取标签为div,属性为class,属性值为title的xml数据,这部分不懂的同学可以看看xml语法,比较简单

第二部分:

将生成的house信息存入到excel表格中:

def WriteToExcel(path,house):
    workBook = xlwt.Workbook()
    sheet = workBook.add_sheet('houseInfo')
    row0 = ['标题','链接','户型','面积', '朝向','总价']
    for i in range(len(row0)):
        sheet.write(0,i,row0[i])
    for i in range(len(house)):
        houseInfo = house[i]
        for j in range(len(houseInfo)):
            sheet.write(i+1,j,houseInfo[j])
    workBook.save(path)

xlwt.Workbook():创建一个工作簿

workBook.add_sheet('houseInfo'):在工作簿里面创建一个sheet

sheet.write(i+1,j,houseInfo[j]):将houseInfo[j]数据写入到sheet的第i+1行第j列

第三部分:

主函数入口:

if __name__ == '__main__':
    url = 'https://sjz.lianjia.com/ershoufang/hy1f2f5sf1l3l2l4a2a3a4/'
    house = GetHouseInfoList(url)
    WriteToExcel('D:/HouseInfo.xls',house)
    for houseInfo in house:
        print(houseInfo)

这个是整个爬取数据的过程,重点要学会以下几点:

(1)python如何获取网页数据并转化为html

(2)python中的函数如何读取到xml对应标签和属性的数据

(3)python中如何将数据写入到excel表格中

有疑问的可以私信我,一起交流答疑解惑

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表