• python爬虫(房天下)


    房天下

    import requests
    res = requests.get('http://esf.sz.fang.com/')
    #res.text 
    
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(res.text,'html.parser')
    domain = 'http://esf.sz.fang.com'
    for house in soup.select('.houseList dl'):
        if len(house.select('.title')) > 0:
            #print(house.select('.title'))
            #print(house.select('.title')[0].text.strip('
    '))
            #title = house.select('.title')[0].text.strip('
    ')
            link = house.select('.title a')[0]['href']
            url = domain + link
            #print(title)
            print(url)
            print("=====================================")
    
    http://esf.sz.fang.com/chushou/3_195350255.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195673873.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_194871298.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195440493.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_194941076.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195229169.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195408601.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195686255.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195652264.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195602160.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195499064.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195655132.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195018784.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_193837152.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195680364.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195585056.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195346885.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195500516.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_194325860.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195556602.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195555259.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195692033.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195202600.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195521932.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195392858.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_194891027.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_192915787.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195538851.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195737629.htm
    =====================================
    http://esf.sz.fang.com/chushou/3_195587205.htm
    =====================================
    

    '''
    [0] 出错
    IndexError: list index out of range
    第1种可能情况
    list[index]index超出范围
    第2种可能情况
    list是一个空的 没有一个元素
    进行list[0]就会出现该错误

    '''

    import requests
    res = requests.get('http://esf.sz.fang.com/chushou/10_195724712.htm')
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(res.text,'html.parser')
    
    soup.select('.title h1')[0].text.strip()
    
    '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'
    
    info = {}
    info['标题'] = soup.select('.title h1')[0].text.strip()
    info
    
    {'标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'}
    
    soup.select('.zongjia1 .red20b')[0].text
    
    '398'
    
    info['总价'] = soup.select('.zongjia1 .red20b')[0].text
    info
    
    {'总价': '398', '标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'}
    
    for dd in soup.select('dd'):
        if ':' in dd.text.strip():
            #print(dd.text.strip().split(':'))
            key,value = dd.text.strip().split(':')
            info[key] = value
    
    info
    
    {'专业度': '2.3',
     '二 手 房': '32套',
     '使用面积': '216�O',
     '厅 结 构': '平层',
     '参考月供': '',
     '参考首付': '119.4万',
     '同比去年': '↓2.1%',
     '地上层数': '3层',
     '地下室面积': '200平米(全明)',
     '好评率': '33%',
     '建筑年代': '2016年',
     '建筑形式': '独栋',
     '建筑面积': '216�O',
     '开 发 商': '东莞市黄江碧桂园房地产开发有限公司',
     '总价': '398',
     '户型': '5室2厅1厨4卫',
     '标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利',
     '满意度': '2.3',
     '物 业 费': '暂无资料',
     '物业公司': '暂无资料',
     '物业类型': '别墅',
     '环比上月': '↓1.39%',
     '真实度': '2.3',
     '租 房': '0套',
     '绿 化 率': '0.00%',
     '花园面积': '100平米',
     '装修程度': '精装修',
     '车位数量': '2个',
     '车库数量': '1个',
     '进门朝向': '南'}
    
    def getHouseDetil(url):
        info = {}
        import requests
        res = requests.get(url)
        from bs4 import BeautifulSoup
        soup = BeautifulSoup(res.text,'html.parser')
        info['标题'] = soup.select('.title h1')[0].text.strip()
        info['总价'] = soup.select('.zongjia1 .red20b')[0].text
        for dd in soup.select('dd'):
            if ':' in dd.text.strip():
                #print(dd.text.strip().split(':'))
                key,value = dd.text.strip().split(':')
                info[key] = value
        return info
    
    url = 'http://esf.sz.fang.com/chushou/3_195684731.html'
    getHouseDetil(url)
    
    {'专业度': '5',
     '二 手 房': '264套',
     '产权性质': '商品房',
     '住宅类别': '普通住宅',
     '使用面积': '76�O',
     '参考月供': '',
     '参考首付': '114万',
     '同比去年': '↑1.11%',
     '好评率': '100%',
     '年代': '2013年',
     '建筑类别': '板楼',
     '建筑面积': '89�O',
     '开 发 商': '和记黄埔地产(深圳)有限公司',
     '总价': '380',
     '户型': '3室2厅1厨2卫',
     '朝向': '南',
     '标题': '刚刚放盘 和黄懿花园顶楼湖景房 带20万装修 诚心出售380万!',
     '楼层': '高层(共10层)',
     '满意度': '5',
     '物 业 费': '3.8元/平米・月',
     '物业公司': '暂无资料',
     '物业类型': '住宅',
     '环比上月': '↑0.01%',
     '真实度': '5',
     '租 房': '66套',
     '结构': '平层',
     '绿 化 率': '30.00%',
     '装修': '精装修'}
    

    综合案例

    import requests
    from bs4 import BeautifulSoup
    res = requests.get('http://esf.sz.fang.com/')
    soup = BeautifulSoup(res.text,'html.parser')
    domain = 'http://esf.sz.fang.com'
    houslist = []
    for house in soup.select('.houseList dl'):
        if len(house.select('.title')) > 0:
            link = house.select('.title a')[0]['href']
            url = domain + link 
            houslist.append(getHouseDetil(url))
    
    len(houslist)
    
    30
    
    houslist[21]
    
    {'专业度': '5.0',
     '二 手 房': '993套',
     '产权性质': '商品房',
     '住宅类别': '普通住宅',
     '使用面积': '126�O',
     '参考月供': '',
     '参考首付': '47.4万',
     '同比去年': '暂无资料',
     '好评率': '100%',
     '年代': '2016年',
     '建筑类别': '板楼',
     '建筑面积': '128�O',
     '开 发 商': '20160527162320,2016051',
     '总价': '158',
     '户型': '4室2厅1厨2卫',
     '朝向': '南北',
     '标题': '碧桂园公园上城、全智能社区、精装四房、南站万达、带',
     '满意度': '5.0',
     '物 业 费': '2.6元/�O・月',
     '物业公司': '广东碧桂园物业服务有限公司',
     '物业类型': '住宅',
     '环比上月': '↑0.14%',
     '真实度': '5.0',
     '租 房': '0套',
     '结构': '平层',
     '绿 化 率': '30.00%',
     '装修': '精装修'}
    
    import pandas
    df = pandas.DataFrame(houslist)
    #df
    
    df.to_excel('/mnt/z/house.xlsx')
    
    url1 = 'http://esf.sz.fang.com/house/i3'
    for i in range(1,3):
        print (url1 + str(i))
    
    http://esf.sz.fang.com/house/i31
    http://esf.sz.fang.com/house/i32
    
    import requests
    import pandas
    from bs4 import BeautifulSoup
    domain = 'http://esf.sz.fang.com'
    url1 = 'http://esf.sz.fang.com/house/i3'
    houslist = []
    for i in range(1,21):
        res = requests.get(url1 + str(i))
        soup = BeautifulSoup(res.text,'html.parser')
        for house in soup.select('.houseList dl'):
            if len(house.select('.title')) > 0:
                link = house.select('.title a')[0]['href']
                url = domain + link 
                houslist.append(getHouseDetil(url))
    df = pandas.DataFrame(houslist)
    df.to_excel('/mnt/z/house4.xlsx')
    
    
    
  • 相关阅读:
    Cookie天使还是恶魔?
    Nhibernate学习起步之manytoone篇
    共享终结者ShareKiller
    基于弹性碰撞原理的抖动式窗口
    Nhibernate分析之华山论剑篇
    Nhibernate学习之manytomany篇
    JavaScript常用字符串函数
    让全中国人蒙羞的搜索爬虫
    近期项目的一些代码总结
    Nhibernate学习之性能改善1
  • 原文地址:https://www.cnblogs.com/kamil/p/6920331.html
Copyright © 2020-2023  润新知