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

效果图:




python抓取天眼查股东 爬取天眼查数据_xml


准备工作:需要准备三个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表格中

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