当前位置: 首页 > 编程日记 > 正文

PythonR爬取分析赶集网北京二手房数据(附详细代码)

640?wx_fmt=jpeg

本文转载自数据森麟(ID:shujusenlin)

作者介绍:徐涛,19年应届毕业生,专注于珊瑚礁研究,喜欢用R各种清洗数据。

知乎:parkson

如何挑战百万年薪的人工智能!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

前言:本文主要分为两部分:Python爬取赶集网北京二手房数据&R对爬取的二手房房价做线性回归分析。文章思路清晰,代码详细,特别适合刚刚接触Python&R的同学学习参考。

Part1:Python爬取赶集网北京二手房数据

入门爬虫一个月,所以对每一个网站都使用Xpath、Beautiful Soup、正则三种方法分别爬取,用于练习巩固。数据来源如下:

640?wx_fmt=png

本文使用Beautiful Soup讲解。

Xpath传送门:Xpath+requests爬取赶集网北京二手房数据

import requests
import re
from requests.exceptions import RequestException
from bs4 import BeautifulSoup
import csv
import time

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}

def get_one_page(url):
   try:
       response = requests.get(url,headers = headers)
       if response.status_code == 200:
           return response.text
       return None
   except RequestException:
       return None

def parse_one_page(content):
   try:
       soup = BeautifulSoup(content,'html.parser')
       items = soup.find('div',class_=re.compile('js-tips-list'))
       for div in items.find_all('div',class_=re.compile('ershoufang-list')):
           yield {
               'Name':div.find('a',class_=re.compile('js-title')).text,
               'Type': div.find('dd', class_=re.compile('size')).contents[1].text,#tag的 .contents 属性可以将tag的子节点以列表的方式输出
               'Area':div.find('dd',class_=re.compile('size')).contents[5].text,
               'Towards':div.find('dd',class_=re.compile('size')).contents[9].text,
               'Floor':div.find('dd',class_=re.compile('size')).contents[13].text.replace('\n',''),
               'Decorate':div.find('dd',class_=re.compile('size')).contents[17].text,
               'Address':div.find('span',class_=re.compile('area')).text.strip().replace(' ','').replace('\n',''),
               'TotalPrice':div.find('span',class_=re.compile('js-price')).text+div.find('span',class_=re.compile('yue')).text,
               'Price':div.find('div',class_=re.compile('time')).text
           }
       #有一些二手房信息缺少部分信息,如:缺少装修信息,或者缺少楼层信息,这时候需要加个判断,不然爬取就会中断。
       if div['Name', 'Type', 'Area', 'Towards', 'Floor', 'Decorate', 'Address', 'TotalPrice', 'Price'] == None:
               return None
   except Exception:
       return None

def main():
   for i in range(1,50):
       url = 'http://bj.ganji.com/fang5/o{}/'.format(i)
       content = get_one_page(url)
       print('第{}页抓取完毕'.format(i))
       for div in parse_one_page(content):
           print(div)
       with open('Data.csv', 'a', newline='') as f:  # Data.csv 文件存储的路径,如果默认路径就直接写文件名即可。
           fieldnames = ['Name', 'Type', 'Area', 'Towards', 'Floor', 'Decorate', 'Address', 'TotalPrice', 'Price']
           writer = csv.DictWriter(f, fieldnames=fieldnames)
           writer.writeheader()
           for item in parse_one_page(content):
               writer.writerow(item)
       time.sleep(3)#设置爬取频率,一开始我就是爬取的太猛,导致网页需要验证。

if __name__=='__main__':
   main()

对于小白容易遇见的一些问题:

a、有一些房屋缺少部分信息,如缺少装修信息,这个时候需要加一个判断,如果不加判断,爬取就会自动终止。我在这里跌了很大的坑。

b、Data.csv知识点存储文件路径默认是工作目录,关于工作目录传送门:python中如何查看工作目录

c、爬虫打印的是字典形式,每一个房屋信息都是一个字典,由于对Python中excel相关库是我知识盲点,所以爬虫的时候将字典循环直接写入CSV。

pycharm中打印如下:

640?wx_fmt=jpeg

图一

将字典循环直接写入CSV效果如下:

640?wx_fmt=jpeg

图二

d、很多初学者对于Address这种不知道如何处理,这里强调一下Beautiful Soup 中.contents的用法,亲身体会,我在这里花了好多时间才找到答案。

640?wx_fmt=jpeg

图三

Part2:R对爬取的二手房房价做一般线性回归分析

下面我们用R对抓取的赶集网北京二手房数据做一些简单的分析。

2.1、数据的说明

Name:主要是商家的醒目标题,分析的时候没有啥参考意义

Type:卧室数、客厅数、卫生间数

Area:面积(平方米)

Towards:朝向

Floor:楼层

Decorate:装修情况如:精装修、简单装修、毛坯房

Address:二手房的地址

TotalPrice:总价

Price:均价(元/平方米)

2.2、数据清洗

data<-read.csv("E://Data For R/RData/data.csv")
DATA<-data[,-c(1,7)]#将Name和Address两列去掉
DATA[sample(1:nrow(DATA),size=10),]

640?wx_fmt=jpeg

图四

#在爬取的时候加入了判断,所以不知道爬取的数据中是否存在缺失值,这里检查一下
colSums(is.na(DATA))

640?wx_fmt=jpeg

图五

#这里将Type的卧室客厅和卫生间分为三个不同的列
##这里需要注意,有一些房屋没有客厅如:1室1卫这时候需要单独处理,还有一些没有厕所信息。
library(tidyr)
DATA=separate(data=DATA,col=Type,into = c("Bedrooms","Halls"),sep="室")
DATA=separate(data=DATA,col=Halls,into = c("Halls","Toilet"),sep="厅")
##将卫生间后面的汉字去掉
DATA$Toilet<-str_replace(DATA$Toilet,"卫","")
###如图六,将Halls中带有汉字去掉,因为有一些房屋信息没有客厅,如:1室1厅,在分成卧室和客厅时,会将卫生间分到客厅一列。
DATA$Halls<-str_replace(DATA$Halls,"卫","")
##取出没有客厅信息的数据,这些数据被separate到Halls列
newdata<-DATA[which(DATA$Toilet %in% NA),2]
newdata
##将没有客厅的房屋信息Halls列填充为0
DATA[which(DATA$Toilet %in% NA),2]<-0
DATA[which(DATA$Toilet %in% NA),3]<-newdata
colSums(DATA=="")
 Bedrooms      Halls     Toilet       Area    Towards      Floor   Decorate
        0          0          2          0          0          0          0
TotalPrice      Price
        0          0

##发现有2个厕所没有信息,将其填写为0。
DATA$Toilet[DATA$Toilet == ""]<-0

640?wx_fmt=jpeg

图六

##这里将Area后的㎡去掉
DATA$Area<-str_replace(DATA$Area,"㎡","")

##查看Towards的类型
table(DATA$Towards)

Towards    北向  东北向  东南向  东西向    东向  南北向    南向  西北向
    51      25      23      50      65      32    1901     678      38
西南向    西向
    28      26
##将Floor信息带括号的全部去除
DATA$Floor<-str_replace(DATA$Floor,"[(].*[)]","")##正则表达式
#查看Floor的类别信息
低层  地下  高层 共1层 共2层 共3层 共4层 共5层  中层
 632    32   790    36    61   101    68   130  1016

#分别将TotalPrice和Price后面的万元、元/㎡去掉

DATA$TotalPrice<-str_replace(DATA$TotalPrice,"万元","")
DATA$Price<-str_replace(DATA$Price,"元/㎡","")

head(DATA)

640?wx_fmt=jpeg

图七

##将数据转换格式
DATA$Bedrooms<-as.factor(DATA$Bedrooms)
DATA$Halls<-as.factor(DATA$Halls)
DATA$Toilet<-as.factor(DATA$Toilet)
DATA$Area<-as.numeric(DATA$Area)
DATA$TotalPrice<-as.numeric(DATA$TotalPrice)
DATA$Price<-as.numeric(DATA$Price)
DATA$Towards<-as.factor(DATA$Towards)
DATA$Decorate<-as.factor(DATA$Decorate)
str(DATA)

640?wx_fmt=jpeg

图八

以上数据清洗完毕。

Part3:描述性分析

主要思路是探究单个自变量对因变量的影响,对房价的影响因素进行模拟探究之前,首先对各变量进行描述性分析,已初步判断房价的影响因素。这里探究各个因素对总价影响。

3.1探究Bedrooms与TotalPrice的关系

table(DATA$Bedrooms)
 1    2    3    4    5    6    7    9
541 1225  779  193  102   20    5    1
##由于拥有6、7、9个卧室数的数量较少,这里我们排出这些数据。
DATA<-DATA[-(which(DATA$Bedrooms %in% "6")),]
DATA<-DATA[-(which(DATA$Bedrooms %in% "7")),]
DATA<-DATA[-(which(DATA$Bedrooms %in% "9")),]
table(DATA$Bedrooms)
  1    2    3    4    5
541 1225  779  193  102

library(ggplot2)
ggplot(DATA,aes(x=Bedrooms,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图九

DATA$Bedrooms<-as.numeric(DATA$Bedrooms)
##这里将卧室数为1、2、3命名为A,4为B,5为C
DATA$Bedrooms[DATA$Bedrooms=='1']<-"A"
DATA$Bedrooms[DATA$Bedrooms=='2']<-"A"
DATA$Bedrooms[DATA$Bedrooms=='3']<-"A"
DATA$Bedrooms[DATA$Bedrooms=='4']<-"B"
DATA$Bedrooms[DATA$Bedrooms=='5']<-"C"

不同卧室数,TotalPrice不同,且随着卧室数的增多,总价越高,符合大众的认知。

3.2探究Halls与TotalPrice的关系

table(DATA$Halls)
  0    1    2    3    4    5    9
 20 1674 1050   77   18    1    0
##5个客厅只有一个个体,我们这里将其排出
DATA<-DATA[-(which(DATA$Halls %in% "5")),]
table(DATA$Halls)
  0    1    2    3    4    5    9
 20 1674 1050   77   18    0    0
ggplot(DATA,aes(x=Halls,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图十

客厅数为3时候总价最高,客厅数为0、1和2的时候总价低于客厅数3和客厅数4。

3.3探究Toilet与TotalPrice的关系

#探究卫生间与总价的关系
table(DATA$Toilet)
  0    1    2    3    4    5    6    7    9
  2 2142  470  116   74   26    7    2    0  
#这里将卫生间数为0、6和7的去掉
DATA<-DATA[-(which(DATA$Toilet %in% "0")),]
DATA<-DATA[-(which(DATA$Toilet %in% "6")),]
DATA<-DATA[-(which(DATA$Toilet %in% "7")),]
table(DATA$Toilet)
  0    1    2    3    4    5    6    7    9
  0 2142  470  116   74   26    0    0    0
ggplot(DATA,aes(x=Toilet,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图十一

一般卧室数越多,卫生间数也越多,即卫生间数越多,总价越高。

3.4探究Area与TotalPrice的关系

ggplot(DATA, aes(x=Area, y=TotalPrice)) + geom_point(col='red')

640?wx_fmt=jpeg

图十二

这个完全符合住房面积越大,总价越高。

3.5探究Towards与TotalPrice的关系

ggplot(DATA,aes(x=Towards,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图十三

3.6探究Floor与TotalPrice的关系

ggplot(DATA,aes(x=Floor,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图十四

图中信息显示楼层一共只有1、2、3、地下的总价较高。

3.7探究Decorate与TotalPrice的关系

ggplot(DATA,aes(x=Decorate,y=TotalPrice))+geom_boxplot(col="red")

640?wx_fmt=jpeg

图十五

不同装修信息对总价影响较小。

Part4:模型建立

fit <-lm(TotalPrice~Bedrooms+Halls+Toilet+Area+Towards+Floor+Decorate,data=DATA)
summary(fit)

Call:
lm(formula = TotalPrice ~ Bedrooms + Halls + Toilet + Area +
   Towards + Floor + Decorate, data = DATA)

Residuals:
    Min       1Q   Median       3Q      Max
-1330.80  -103.49   -21.41    63.88  2961.59

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      -112.7633    88.3010  -1.277 0.201697    
Bedrooms2         -43.5934    16.2533  -2.682 0.007359 **
Bedrooms3         -82.6565    20.7641  -3.981 7.04e-05 ***
Bedrooms4         -63.3096    34.9521  -1.811 0.070198 .  
Bedrooms5          79.0618    54.0763   1.462 0.143842    
Halls1             -5.0663    64.2764  -0.079 0.937182    
Halls2            -53.8905    65.4427  -0.823 0.410307    
Halls3           -303.9750    79.2280  -3.837 0.000127 ***
Halls4           -528.5427   104.0849  -5.078 4.07e-07 ***
Toilet2           112.9566    19.1171   5.909 3.87e-09 ***
Toilet3           543.7304    38.8056  14.012  < 2e-16 ***
Toilet4           735.1894    55.0977  13.343  < 2e-16 ***
Toilet5           338.7906    84.2851   4.020 5.98e-05 ***
Area                5.1091     0.1619  31.557  < 2e-16 ***
Towards东北向     138.9088    79.3817   1.750 0.080248 .  
Towards东南向     187.1895    68.5388   2.731 0.006351 **
Towards东西向     176.3055    65.8384   2.678 0.007453 **
Towards东向       210.9435    73.2744   2.879 0.004022 **
Towards南北向      75.7831    57.1199   1.327 0.184704    
Towards南向        60.1949    56.9678   1.057 0.290763    
Towards西北向      75.4326    71.1415   1.060 0.289091    
Towards西南向     169.8106    75.9626   2.235 0.025467 *  
Towards西向       234.0816    76.5585   3.058 0.002253 **
Floor地下        -812.3578    63.3277 -12.828  < 2e-16 ***
Floor高层          12.3525    14.2466   0.867 0.385991    
Floor共1层       -313.7278    52.1342  -6.018 2.00e-09 ***
Floor共2层       -453.3692    41.6829 -10.877  < 2e-16 ***
Floor共3层       -601.7032    44.3336 -13.572  < 2e-16 ***
Floor共4层       -183.7866    36.3396  -5.057 4.52e-07 ***
Floor共5层        -41.4184    25.7922  -1.606 0.108419    
Floor中层          -1.7223    13.5961  -0.127 0.899204    
Decorate简单装修  -63.1591    22.0584  -2.863 0.004224 **
Decorate精装修    -49.3276    19.8544  -2.484 0.013033 *  
Decorate毛坯     -157.0299    24.3012  -6.462 1.22e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 265.5 on 2794 degrees of freedom
Multiple R-squared:  0.6852,    Adjusted R-squared:  0.6815
F-statistic: 184.3 on 33 and 2794 DF,  p-value: < 2.2e-16

模型的F检验拒绝原假设,说明建立的模型是显著的;Ajusted R-squared 为0.6815,模型的拟合程度尚可接受。

后面还有模型的检验,之后有机会会进行更深入的探讨。

程序员转行学什么语言?

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

(本文为 AI大本营转载文章,转载请联系原作者)

群招募

扫码添加小助手微信,回复:公司+研究方向(学校+研究方向),邀你加入技术交流群。技术群审核较严,敬请谅解。

640?wx_fmt=jpeg

推荐阅读:

  • 2018 Python开发者大调查:Python和JavaScript最配?

  • 拿下中科大的计算机课程全靠它了!

  • 访问量最高超7百万的Stack Overflow问题竟然是...

  • 给老婆写的Python教程

  • “软件外包城”下的马鞍山 | 程序员有话说

  • 神操作!程序员如何拿下硅谷顶级公司 200 万年薪?!

  • 可怕!9岁男孩为买任天堂游戏机,竟然...

  • 云评测 | OpenStack智能运维解决方案 @文末有福利!

  • 月入5万,程序员夫人们过上"贵妇"生活了吗?

640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

相关文章:

【Qt】QCloseEvent的使用小结

问题描述 在程序中使用QCloseEvent时,有时没有反应,没有关闭程序。 原因 经测试只有在界面起来以后,使用event->accept()才能关闭程序 测试如下 在构造函数中调用close() 在构造函数中调用close()时,会触发QCloseEvent事件,但是程序界面没有关闭。 使用按钮触发…

Java反射 - 私有字段和方法

尽管普遍认为通过Java Reflection可以访问其他类的私有字段和方法。 这并不困难。 这在单元测试中可以非常方便。 本文将告诉你如何。 访问私有字段 要访问私有字段&#xff0c;您需要调用Class.getDeclaredField&#xff08;String name&#xff09;或Class.getDeclaredFields…

.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)

过去几年都在忙着找项目&#xff0c;赶项目&#xff0c;没有时间好好整理深究自己在工作中学到的东西。现在好了&#xff0c;趁着找工作的这段空余时间&#xff0c;正好可以总结和再继续夯实自己的.Net, C#基本功。在05年的时候&#xff0c;Scott Hanselman(微软的一个Principa…

一个小小的AI训练营竟然卧虎藏龙

年前&#xff0c;我来到了一个近墨者黑的地方&#xff0c;黑的不能再黑。。。这个神秘的组织叫做 21 天入门机器学习训练营。讲真的&#xff0c;当初报名这个训练营&#xff0c;我是冲着机器学习来的&#xff0c;主要是好奇想转型&#xff0c;而且听说这个课程对小白很友好&…

【Qt】QCamera查询和设置摄像头的分辨率

查询和设置摄像头分辨率的API QCamera::supportedViewfinderResolutions() QCamera::setViewfinderSettings() 设置摄像头帧率、比例、分辨率、格式的类&#xff1a;QCameraViewfinderSettings 使用注意事项 查询和设置摄像头分辨率时&#xff0c;需要在摄像头启动后调用&a…

附录G Netty与NettyUtils

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/77450134 注&#xff1a;本文是为了配合《Spark内核设计的艺术 架构设计与实现》一书的内容而编写&#xff0c;目的是为了节省成本、方便读者查阅。…

grails日志系统的研究

对于grails的日志输出&#xff0c;我真的是给弄吐血了。开始以为很简单&#xff0c;后来发现grails封装log4j做的有点太多了&#xff0c;很多东西的封装理解了觉得还挺合理&#xff0c;但是不理解的话真是无比迷茫。对于是否有必要做这么多强制性约束&#xff0c;我保留意见...…

给老婆写个Python教程

作者 | 水风 来源 | 水风知乎问答 如何挑战百万年薪的人工智能&#xff01; https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 什么是code code就是一种语言&#xff0c;一种计算机能读懂的语言。计算机是一个傻逼&#xff0c;他理解不了默认两可的任何东西。比如&#xf…

SpringBoot的修改操作

今天学习SpringBoot 的 CRUD 操作&#xff0c;练习 修改操作 时&#xff0c;发生了如下的异常&#xff1a; [nio-8080-exec-7] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.dao.InvalidDataAccessApiUsa…

【Qt】QImage、QPixmap、QBitmap和QPicture

简述 Qt 提供了四个用于处理图像数据的类: QImage、 QPixmap、 QBitmap和QPicture。QImage是为 I/O 设计和优化的, 用于直接像素访问和操作, 而QPixmap是为在屏幕上显示图像而设计和优化的。QBitmap继承自QPixmap&#xff0c;用在位深为1&#xff08;黑白图片&#xff09;上。…

ASP.NET,IIS7.0 上传大视频文件报错

一、问题概述&#xff1a; 最近开发上传视频文件的功能。基本流程已经跑通了&#xff0c;可是上传30M以上的文件时就会报错。 二、资料海洋瞎扑腾 从网上查了一些资料&#xff0c;一般都是下面这种说法&#xff1a; 看着步骤倒是也不算繁琐&#xff0c;可是本人照着步骤做了却没…

【imx6】Unable to find the ncurses libraries的解决办法

问题描述 在执行make menuconfig时&#xff0c;报错&#xff1a; Unable to find the ncurses libraries… 解决方法 安装ncurses和ncursesw库 sudo apt-get insatll ncurses-dev sudo apt-get insatll ncursesw-dev 注意&#xff1a;ncursesw库是ncurses的升级版本&#…

Elasticsearch6.1.3 for CRUD

为什么80%的码农都做不了架构师&#xff1f;>>> 一、创建文档 [root AOS2 AutoTest01:/root]#curl -X PUT 9.1.6.140:9200/students/class1/1?pretty -d > { > "first_name": "changwei", > "last_name": "…

指纹锁就安全了?防火防盗还得防AI

整理 | 一一 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 如何挑战百万年薪的人工智能 https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 近日&#xff0c;你应该看到了社交媒体上对于网站 ThisPersonDoesNotExist.com&#xff0c;生成无数不存在人脸的铺天…

迪杰斯特拉算法(C语言实现)

迪杰斯特拉算法&#xff08;C语言实现&#xff09; 如上图&#xff0c;求以a为源点到个顶点的最短路劲。 #include "stdio.h"#include "stdlib.h"//用一个最大数表示顶点之间不相关#define MAX 999//设置顶点个数#define MAX_VERTEX_NUM 7//表示顶点之间不…

小米半年来最大调整:成立技术委员会,雷军称技术事关生死存亡

整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;昨晚&#xff0c;小米集团组织部下发正式文件&#xff0c;宣布了最新一轮组织架构调整&#xff0c;任命了崔宝秋为集团副总裁&#xff0c;集团技术委员会主席&#xff0c;并且在核心管理岗位上共任命了 14 …

【驱动】在内核源码中添加驱动程序

以wifi驱动(RTL8188EUS驱动)为例 添加源码 将源码rtl8188EUS添加到drivers/net/wireless/rtl818x/目录下 添加Kconfig 在drivers/net/wireless/rtl818x/rtl8188EUS添加Kconfig&#xff0c;内容如下&#xff1a; config RTL8188EUtristate "Realtek 8188E USB WiFi&qu…

怎么让wordpress用sqlite3 搭建轻量级博客系统

wordpress 默认是用mysql作为数据库支持&#xff0c;这个对个人站长来说还是有点麻烦了些。特别是如果以后网站备份迁移就有点事多了。 之前用django开发自己的博客感觉其实用sqlite3作为数据库插好&#xff0c;就是一个文件而已。备份网站&#xff0c;直接打包整个目录即可方便…

IBM蓝色基因/Q将采用NAND闪存存储

IBM将在计划中的高性能“怪兽”——蓝色基因/Q中采用NAND闪存存储。 这是一款采用水冷方式的高性能计算系统&#xff0c;IBM在近日的SC10大会上展示了其原型机的组件。 蓝色基因/Q将采用的闪存是来自SMART的XceedIOPS MLC NAND产品&#xff0c;它使用34nm制程工艺&…

全球超2万名开发者调研:Python 3渗透率至84%

编辑 | suiling 出品 | Python大本营&#xff08;ID&#xff1a;pythonnews&#xff09; 60s测试&#xff1a;你是否适合转型人工智能&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 在2018年秋季&#xff0c;Python软件基金会与JetBrains发起了年度Python…

【Qt】QWidget对样式表设置边框无效的解决方法

1、现象 在对QWidget使用样式表时无效 QWidget#MyWgt{border:1px solid gray; }2、原因 原因是QWidget只支持background、background-clip和background-origin属性。 3、解决方法 3.1 使用QFrame代替QWidget&#xff0c;QFrame继承自QWidget&#xff0c;并且带有框架属性 …

break continue

break 终止整个循环体&#xff0c;执行循环后的代码&#xff1b; continue 终止单次的循环&#xff0c;整个循环体还是会继续执行转载于:https://www.cnblogs.com/RonnieQin/p/8430783.html

CSSA email list

UCSD: cssamailman.ucsd.eduUChicago: cssalists.uchicago.edu 转载于:https://www.cnblogs.com/stoneresearch/archive/2010/11/30/4336484.html

LVS原理详解(3种工作方式8种调度算法)--老男孩

一、LVS原理详解&#xff08;4种工作方式8种调度算法&#xff09;集群简介集群就是一组独立的计算机&#xff0c;协同工作&#xff0c;对外提供服务。对客户端来说像是一台服务器提供服务。LVS在企业架构中的位置&#xff1a;以上的架构只是众多企业里面的一种而已。绿色的线就…

【Qt】QMainWindow最大化按钮是灰色(不能最大化)的解决方法

解决方法 设置最大尺寸为16777215&#xff0c;并且使能Qt::WindowMaximizeButtonHint&#xff08;默认就是使能的&#xff0c;不执行也可以&#xff09; const QSize MAIN_SIZE_MAX QSize(16777215, 16777215); this->setMaximumSize(MAIN_SIZE_MAX); this->setWindow…

“AI明星”地平线B轮融资6亿美元!

整理 | 一一 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 60s测试&#xff1a;你是否适合转型人工智能&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 2 月 27 日&#xff0c;人工智能芯片技术的 AI 创业企业地平线(Horizon Robotics)宣布&a…

C++深拷贝与浅拷贝

浅拷贝就是成员数据之间的一一赋值&#xff1a;把值赋给一一赋给要拷贝的值。但是可能会有这样的情况&#xff1a;对象还包含资源&#xff0c;这里的资源可以值堆资源&#xff0c;或者一个文件。。当 值拷贝的时候&#xff0c;两个对象就有用共同的资源&#xff0c;同时对资源可…

【OpenCV】使用过的函数汇总

1、类 Mat&#xff1a;矩阵matrix&#xff0c;opencv2中主要用来封装图片数据 InputArray&#xff1a;输入参数 &#xff0c;约等于Mat OutputArray&#xff1a;输出参数&#xff0c;约等于Mat Rect&#xff1a;表示矩形 2、函数 imread();//从文件中读取图片到Mat中 imwrit…

春招来袭!程序员如何拿下硅谷顶级公司200万年薪?

还记得那个在去年&#xff0c;用 6 天时间参加了 LinkedIn、Yelp、Apple、亚马逊、Facebook 和 Google 的面试&#xff0c;并拿下了 6 份 Offer 的“别人家的程序员”吗&#xff1f;之后&#xff0c;他又在这几份工作中进行了选择&#xff0c;一步步谈下了 30 万美元&#xff0…

wake_lock_timeout的使用方法【转】

本文转载自&#xff1a;http://blog.csdn.net/liuxd3000/article/details/44224849 今天有用到用ec43_GPIO的中断来唤醒系统&#xff0c;将系统从深度休眠中唤醒并保证系统wakup 一段时间用过了&#xff0c;方法如下&#xff0c;有同样使用的童鞋可以参考一下&#xff01;1. …