您的位置:首页 > 编程语言 > Python开发

一个简单的关于python爬虫获取数据并使用Numpy分析的案例

2019-02-28 21:07 776 查看

前言

目标:获取成都近十年的人口以及房价数据并分析其相关性和趋势。
目标网站:国家统计局
使用工具:selenium+numpy
IDE:spyder

代码部分

from selenium import webdriver
import matplotlib.pyplot as plt#导入绘图库pyplot
import matplotlib as mat
from numpy import array,cov,corrcoef
import numpy as np
global priceurllis
global purllis
global price1
global price2
global url1
global url2
yearslis=[2008,2009,2010,2011,2012,2013,2014,2015,2016,2017]
priceurllis=[]
purllis=[]
priced1=[]
priced2=[]

#爬取数据部分
def geteaceprice(url1): #定义获取房价数据的函数
browser = webdriver.Chrome()
browser.get(url1)
price1 = browser.find_elements_by_css_selector("td[align^='right']")
for q1 in range(len(price1)):
if q1 ==1:#只获得第一个数据
txt1 = price1[q1].text
priced1.append(txt1)
browser.close()

def geteachperson(url2):#定义获得人口数据的函数
browser = webdriver.Chrome()
browser.get(url2)
price2 = browser.find_elements_by_css_selector("td[align^='right']")
for q2 in range(len(price2)):
if q2 ==1:#只获得第一个数据
txt2 = price2[q2].text
priced2.append(txt2)
browser.close()
def main():#定义主函数
for i in range(10):#产生循环,产生链接,并获得每年的人口与房价数据
url1 = ('http://data.stats.gov.cn/search.htm?s='+str(yearslis[i])+'%20成都%20住宅商品房平均销售价格(元/平方米)')
priceurllis.append(url1)
url2 = ('http://data.stats.gov.cn/search.htm?s='+str(yearslis[i])+'%20成都%20居住人口')
purllis.append(url2)
print(url1,url2)
geteaceprice(url1)
geteachperson(url2)
main()

#数据分析部分,为了简便,直接将获取的数据写出。
y=[4857.00, 4925.00, 5937.00, 6716.71, 7288.24, 7197.00, 7032.00, 6875.00, 7504.00, 8733.00]
y2=[1124.96, 1139.63, 1149.07, 1163.28, 1173.30, 1187.99, 1210.74, 1228.05, 1398.90,1435.33]

plt.plot(yearslis,y2,'b',yearslis,y,'g')

data = array(y)
data2 = array(y2)
x = np.vstack((data,data2))
np.corrcoef(data, data2)
np.corrcoef(x)

总结

由于自己的熟练度限制,代码很多地方很繁琐需要改进,但是总体思路是清晰的,如果有好的建议或者问题请提出来。
另:在爬取数据的时候遇到的许多问题,但是解决后的乐趣是真的爽的一笔,可能这就是编程的乐趣吧

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐