链家二手房北京(链家地产北京二手房源)

最近,许多人私下谈论我对一项任务的帮助。很多人都不是计算机专业的大学生。其实我也不是,你应该上Python数据分析学校的在线公开课。你最近要做功课,然后你的功课

最近,许多人私下谈论我对一项任务的帮助。很多人都不是计算机专业的大学生。其实我也不是,你应该上Python数据分析学校的在线公开课。你最近要做功课,然后你的功课就是抓取北京Lianjia.com的二手房信息,做线性回归建模。其实也没那么难。

具体要求如下。

链家二手房北京(链家地产北京二手房源)插图

链家二手房北京(链家地产北京二手房源)插图(1)

我是一个写我所学的博客的人。润森今天给你做的,效果如下图所示。我把这篇文章放在一个付费专栏里,所以可怜可怜我吧。

链家二手房北京(链家地产北京二手房源)插图(2)

@

调试代码绘制箱型图线性回归代码

爬虫

网址是:https://bj.lianjia.com/ershoufang/pg1/.

你得到的信息是圈出下面的东西。

链家二手房北京(链家地产北京二手房源)插图(3)

现在我开F12,链就有了确定的样子,你就是对的人。

链家二手房北京(链家地产北京二手房源)插图(4)

算了,我吃。先说我这个年纪的大学生的钱。

调试

就是后来找资料的ID和类,发现都在网页的源代码上。

链家二手房北京(链家地产北京二手房源)插图(5)

链家二手房北京(链家地产北京二手房源)插图(6)

链家二手房北京(链家地产北京二手房源)插图(7)

代码

下一步是使用xpath遍历,这并不难。在这里,我需要说的是贾立安的爬虫。com真的很严格,会屏蔽ip,然后重置301。但是贾立安。com不错,就是301,但还是返回了网页的源代码,大概是知道大学生要做这个作业。所以,爬行并不难。然后写成csv。这里不推荐使用csv模块。直接用开是不是很温馨?然后就是一个长串的切片问题,比如3室1厅| 95.02平米|西南北|精装|高楼层(共14层)| 1998年建|板塔结合,一个拆分就能直接搞定,然后就是一个简单的清单取值问题。爬虫代码如下。

'''@作者:润森@微信微信官方账号:润森笔记@博客:https://blog.csdn.net/weixin_44510615@Date: 2020年5月28日& # 39;''importrequestsfromlxmlimportetreeheaders = { & # 39;用户代理& # 39;:'Mozilla/5.0(windows nt 10.0;Win64x64)AppleWebKit/537.36(KHTML,like gecko)Chrome/77 . 0 . 3865 . 90 safari/537.36 & # 39;} with open(& # 39;df.csv & # 39,'a+& # 39;)ASF:f . write(& # 39;数量& # 39;+','+'square & # 39+','+'方向& # 39;+','+'装修& # 39;+','+'楼层& # 39;+','+'时间& # 39;+','+'平均价格& # 39;+','+'总价& # 39;+','+'位置& # 39;+','+'哪里& # 39;+'\ n & # 39)foriinrange(1,101):page _ URL = & # 39;https://bj.lianjia.com/ershoufang/pg{}'。format(I)RES = requests . get(page _ URL,headers = headers)//永不判断RES 200 page = etree.html(RES . text)content = page . XPath(& # 34;//div[@ class = & # 39;houseInfo & # 39]/text()& # 34;)mean price = page . XPath(& # 34;//div[@ class = & # 39;单价& # 39;]/@ data-price & # 34;)total prices = page . XPath(& # 34;//div[@ class = & # 39;总价& # 39;]/span/text()& # 34;)locationes = page . XPath(& # 34;//div[@ class = & # 39;positionInfo & # 39]/a[1]/text()& # 34;)where es = page . XPath(& # 34;//div[@ class = & # 39;positionInfo & # 39]/a[2]/text()& # 34;)fori,price,totalPrice,location,whereinzip(content,MeanPrice,totalPrices,locations,where es):print(& # 34;take:{ } & # 34;。format(page _ URL))if noti . split(& # 34;|")[0]:number = & # 39;'else:number = I . split(& # 34;|")[0]if noti . split(& # 34;|")[1][:-3]:square = & # 39;'else:square = I . split(& # 34;|")[1][:-3]if noti . split(& # 34;|")[2]:方向= & # 39;'else:direction = I . split(& # 34;|")[2]if noti . split(& # 34;|")[3]:装修= & # 39;'else:decoration = I . split(& # 34;|")[3]if noti . split(& # 34;|")[4]:floor = & # 39;'else:floor = I . split(& # 34;|")[4]if noti . split(& # 34;|")[5]:时间= & # 39;'else:time = I . split(& # 34;|")[5]打印(& # 34;写作:& # 34;+number+& # 39;,'+square+& # 39;,'+方向+& # 39;,'+装修+& # 39;,'+floor+& # 39;,'+时间+& # 39;,'+价格+& # 39;,'+总价+& # 39;,'+位置+& # 39;,'+where+& # 39;\ n & # 39)f.write(数字+& # 39;,'+square+& # 39;,'+方向+& # 39;,'+装修+& # 39;,'+floor+& # 39;,'+时间+& # 39;,'+价格+& # 39;,'+总价+& # 39;,'+位置+& # 39;,'+where+& # 39;\ n & # 39)运行上面代码,可以得到以下结果。

链家二手房北京(链家地产北京二手房源)插图(8)

这里有3000条数据,都是这些。

数据分析绘制箱型图

读取数据是熊猫库读取,需要设置编码= & # 39;gbk & # 39。因为我设置了中文代码,然后画出了盒图,就是matplotlib里的boxplot,然后我随机选取的& # 39;庄& # 39;,'万寿路& # 39;,'万达& # 39;,'三元桥& # 39;,'东桥& # 39;画出方框图,效果如下。

链家二手房北京(链家地产北京二手房源)插图(9)

线性回归

然后就是二手房面积和二手房总价的关系。最小二乘法本质上是线性回归,效果如下。

链家二手房北京(链家地产北京二手房源)插图(2)

代码

'''@作者:润森@微信微信官方账号:润森笔记@博客:https://blog.csdn.net/weixin_44510615@Date: 2020年5月28日& # 39;''importnumpyasnpimportpandas aspdimportmatplotlibasmplfrommatplotlibimportyplotaspltfromskneel . linear _ modelimportlinearregressionmpl . RC params[& # 39;font . sans-serif & # 39;]=['希姆黑& # 39;]mpl . RC params[& # 39;axes.unicode _ minus & # 39]= false data = PD . read _ CSV(& # 34;data.csv & # 34,编码= & # 39;gbk & # 39)data . dropna(in place = True)print(NP . unique(data[& # 39;哪里& # 39;]))data _ qilizha un = data[data[& # 39;哪里& # 39;]=='庄& # 39;]['平均价格& # 39;]data _ wangshoulu = data[data[& # 39;哪里& # 39;]=='万寿路& # 39;]['平均价格& # 39;]data _ wangda = data[data[& # 39;哪里& # 39;]=='万达& # 39;]['平均价格& # 39;]data _三元桥= data[data[& # 39;哪里& # 39;]=='三元桥& # 39;]['平均价格& # 39;]data _东大桥= data[data[& # 39;哪里& # 39;]=='东桥& # 39;]['平均价格& # 39;]plot _ data = NP . array([data _ qilizhaan,data_wangshoulu,data_wangda,data _三元桥,data _东大桥])labels =[& # 39;庄& # 39;,'万寿路& # 39;,'万达& # 39;,'三元桥& # 39;,'东桥& # 39;]plt.boxplot(plot_data,labels = labels)PLT . title(& # 34;北京七里庄、万寿路、万达、三元桥、东大桥二手房每平米均价单位:人民币& # 34;)PLT . show()X = NP . array(data[& # 39;square & # 39]).整形(-1,1)y =数据[& # 39;总价& # 39;].astype(np.int)。values model = linear regression()model . fit(X,y)plt.scatter(X,y,c = & # 39g & # 39)PLT . xlabel(& # 34;北京二手房面积单位:m2 & # 34)PLT . y label(& # 34;北京二手房总价:万元& # 34;)PLT . title(& # 39;$ y = % . 4 FX+% . 4f # 39;%(model.coef_,model.intercept_))plt.plot(X,model.predict(X),& # 39;r & # 39)plt.show(),非计算机专业大学生。其实我也不是,你应该上Python数据分析学校的在线公开课。你最近要做功课,然后你的功课就是抓取北京Lianjia.com的二手房信息,做线性回归建模。其实也没那么难。具体要求如下。

链家二手房北京(链家地产北京二手房源)插图(10)

链家二手房北京(链家地产北京二手房源)插图(11)

我是一个写我所学的博客的人。润森今天给你做的,效果如下图所示。

链家二手房北京(链家地产北京二手房源)插图(12)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/59678.html

发表回复

登录后才能评论