博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫来啦,抓取数据导出到excel,简单明了,强大,直接贴代码
阅读量:4220 次
发布时间:2019-05-26

本文共 3594 字,大约阅读时间需要 11 分钟。

#!/usr/bin/pythonimport requestsimport xlwtfrom bs4 import BeautifulSoupdef getHouseList(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'}    # get从网页获取信息    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# 爬取房屋详细信息:所在区域、套内面积def houseinfo(url):    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')    msg = []    # 所在区域    areainfos = soup.find_all('span', class_='info')    for areainfo in areainfos:        # 只需要获取第一个a标签的内容即可        area = areainfo.find('a')        if (not area):            continue        hrefStr = area['href']        if (hrefStr.startswith('javascript')):            continue        msg.append(area.get_text())        break    # 根据房屋户型计算套内面积    infolist = soup.find_all('div', id='infoList')    num = []    for info in infolist:        cols = info.find_all('div', class_='col')        for i in cols:            pingmi = i.get_text()            try:                a = float(pingmi[:-2])                num.append(a)            except ValueError:                continue    msg.append(sum(num))    return msg# 将房源信息写入excel文件def writeExcel(excelPath, houses):    workbook = xlwt.Workbook()    # 获取第一个sheet页    sheet = workbook.add_sheet('git')    row0 = ['标题', '链接地址', '户型', '面积', '朝向', '总价', '所属区域', '套内面积']    for i in range(0, len(row0)):        sheet.write(0, i, row0[i])    for i in range(0, len(houses)):        house = houses[i]        print(house)        for j in range(0, len(house)):            sheet.write(i + 1, j, house[j])    workbook.save(excelPath)# 主函数def main():    data = []    for i in range(1, 5):        print('开始抓取第', i, '页')        if i == 1:            url = 'https://sjz.lianjia.com/ershoufang/l2rs%E5%92%8C%E5%B9%B3%E4%B8%96%E5%AE%B6/'        else:            url = 'https://sjz.lianjia.com/ershoufang/pg' + str(i) + 'l2rs%E5%92%8C%E5%B9%B3%E4%B8%96%E5%AE%B6/'        houses = getHouseList(url)        for house in houses:            link = house[1]            if (not link or not link.startswith('http')):                continue            mianji = houseinfo(link)            # 将套内面积、所在区域增加到房源信息            house.extend(mianji)        data.extend(houses)        print('-------------------第', i, '页抓取完毕------------------------')    writeExcel('D:/house.xls', data)    print('房源抓取完毕,excel导出路径:%s' % 'D:/house.xls')if __name__ == '__main__':    main()

 

 

转载地址:http://poemi.baihongyu.com/

你可能感兴趣的文章
免费!免费!免费!全国高校大数据师资实战免费培训班
查看>>
“南京市独角兽瞪羚企业俱乐部创始人简餐会”走进云创
查看>>
本科大数据专业该怎么上?
查看>>
云创大数据1+X大数据应用部署与调优职业技能等级证书预申报正式开启!
查看>>
人工智能需要一个可被证明的理论作为基础 | 哈佛丘成桐
查看>>
入门 | 一文概览深度学习中的激活函数
查看>>
一分钟整明白Tensorflow Extended
查看>>
人工智能再次参加高考:和作家比写作文,AI能打多少分?
查看>>
几行Python代码搞定,偏要用100个GPU!
查看>>
马斯克联名2000多AI专家誓言禁绝杀人机器人!发起人泰格马克将亲临AI World2018...
查看>>
你知道甲醛的危害有多大吗?
查看>>
《Nature》纪念人工智能60周年专题:深度学习综述
查看>>
开发者如何挑选最合适的机器学习框架?
查看>>
一份帮助你更好地理解深度学习的资源清单
查看>>
机器学习到底是什么?
查看>>
视频 | 传说中的照妖镜,AI 竟然变成面瘫演技的救星与考验
查看>>
重大突破!斯坦福证明神经网络能直接在光学芯片上训练
查看>>
2018年人工智能全景图与发展趋势分析
查看>>
7月Python和机器学习最佳开源项目Top 10!都在收藏!
查看>>
【一文看尽200篇干货】2018最新机器学习、NLP、Python教程汇总!
查看>>