• 2017年中国主要城市房价工资比排行榜


    2017房价

    import requests
    import bs4
    import re
    import openpyxl
    
    def open_url(url):
        headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
        Chrome/86.0.4240.198 Safari/537.36"}
        res=requests.get(url,headers=headers)
    
        return res
    
    def find_infor(res) -> object:
        data=[]
        soup=bs4.BeautifulSoup(res.text,'html.parser')
        content=soup.find(id="C-Main-Article-QQ")
        targets=content.find_all('p',style="TEXT-INDENT: 2em")
        targets=iter(targets) #因为targets是一个列表,是一个可迭代对象;可以用for循环来迭代它,但是它本身不是一个迭代器;直接用的话会提示:
        ##'XXX' object is not an iterator.判断断一个对象是不是一个迭代器,可以用next()函数来迭代它/作用它;
        ##targets=iter(targets)行是通过用iter()函数吧targets转换为了迭代器,所以在下面的for循环中对targets可以直接应用next()函数了。
        for each in targets:
            # print(each.text)
            # if each.text.isnumeric():
            #     for i in range(4):
            #         data.append(next(targets).text)
    
            if each.text.isnumeric():
                data.append([re.search(r'[(.+)]',next(targets).text).group(1),
                            re.search(r'd.*', next(targets).text).group(),
                            re.search(r'd.*', next(targets).text).group(),
                            re.search(r'd.*', next(targets).text).group()])
    
        return data
        # return content
    
    def to_excel(data):
        wb=openpyxl.Workbook()
        wb.guess_types=True
        ws=wb.active
        ws.append(['城市','平均房价','平均工资','房价工资比'])
        for each in data:
            ws.append(each)
        wb.save("2017年中国主要城市房价工资比排行榜.xlsx")
    def main():
        url = 'https://news.house.qq.com/a/20170702/003985.htm'
        res = open_url(url)
        data=find_infor(res)
        to_excel(data)
        # print(data)
        # content=find_infor(res)
        # with open("2017各城市房价1.txt",'w',encoding='utf-8') as f:
        #     f.write(content.text)
    
    if __name__=="__main__":
        main()
    

      

  • 相关阅读:
    更新Centos 8 内核
    Docker安装
    微服务学习实战笔记 4.1-系统部署篇-Centos 8 下 安装配置K8S
    安装supervisor
    微服务学习实战笔记 4.2-系统部署篇-搭建 Harbor 镜像仓库服务器
    SRS流媒体服务器安装
    微服务学习实战笔记 1.1-系统架构篇-技术选型
    .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer
    IdentityServer4 自定义授权模式
    IdentityServer4 保护.net framework webapi
  • 原文地址:https://www.cnblogs.com/Li-JT/p/15072413.html
Copyright © 2020-2023  润新知