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

前言

目标:获取成都近十年的人口以及房价数据并分析其相关性和趋势。
目标网站:国家统计局
使用工具: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)

一个简单的关于python爬虫获取数据并使用Numpy分析的案例_第1张图片

总结

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

你可能感兴趣的:(数据分析)