手把手教你Python抓取數(shù)據(jù)并可視化_第1頁(yè)
手把手教你Python抓取數(shù)據(jù)并可視化_第2頁(yè)
手把手教你Python抓取數(shù)據(jù)并可視化_第3頁(yè)
手把手教你Python抓取數(shù)據(jù)并可視化_第4頁(yè)
手把手教你Python抓取數(shù)據(jù)并可視化_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第手把手教你Python抓取數(shù)據(jù)并可視化目錄前言一、數(shù)據(jù)抓取篇1.簡(jiǎn)單的構(gòu)建反爬措施2.解析數(shù)據(jù)3.完整代碼二、數(shù)據(jù)可視化篇1.數(shù)據(jù)可視化庫(kù)選用2.案例實(shí)戰(zhàn)(1).柱狀圖Bar(2).地圖Map(3).餅圖Pie(4).折線圖Line(5).組合圖表總結(jié)

前言

大家好,這次寫(xiě)作的目的是為了加深對(duì)數(shù)據(jù)可視化pyecharts的認(rèn)識(shí),也想和大家分享一下。如果下面文章中有錯(cuò)誤的地方還請(qǐng)指正,哈哈哈?。?!

本次主要用到的第三方庫(kù):

requestspandaspyecharts

之所以數(shù)據(jù)可視化選用pyecharts,是因?yàn)樗胸S富的精美圖表,地圖,也可輕松集成至Flask,Django等主流Web框架中,并且在html渲染網(wǎng)頁(yè)時(shí)把圖片保存下來(lái)(這里好像截屏就可以了,),任君挑選!??!

這次的數(shù)據(jù)采集是從招聘網(wǎng)址上抓取到的python招聘崗位信息,嗯其實(shí)這抓取到的數(shù)據(jù)有點(diǎn)少(只有1200條左右,也沒(méi)辦法,崗位太少了),所以在后面做可視化圖表的時(shí)候會(huì)導(dǎo)致不好看,駭。本來(lái)也考慮過(guò)用java(數(shù)據(jù)1萬(wàn)+)的數(shù)據(jù)來(lái)做測(cè)試的,但是想到寫(xiě)的是python,所以也就只能將就用這個(gè)數(shù)據(jù)了,當(dāng)然如果有感興趣的朋友,你們可以用java,前端這些崗位的數(shù)據(jù)來(lái)做測(cè)試,下面提供的數(shù)據(jù)抓取方法稍微改一下就可以抓取其它崗位了。

好了,廢話不多說(shuō),直接開(kāi)始吧!

一、數(shù)據(jù)抓取篇

1.簡(jiǎn)單的構(gòu)建反爬措施

這里為大家介紹一個(gè)很好用的網(wǎng)站,可以幫助我們?cè)趯?xiě)爬蟲(chóng)時(shí)快速構(gòu)建請(qǐng)求頭、cookie這些。但是這個(gè)網(wǎng)站也不知為什么,反正在訪問(wèn)時(shí)也經(jīng)常訪問(wèn)不了!額,介紹下它的使用吧!首先,我們只需要根據(jù)下面圖片上步驟一樣。

完成之后,我們就復(fù)制好了請(qǐng)求頭里面的內(nèi)容了,然后打開(kāi)網(wǎng)址/進(jìn)入后直接在輸入框里Ctrl+v粘貼即可。然后就會(huì)在下面解析出內(nèi)容,我們直接復(fù)制就完成了,快速,簡(jiǎn)單,哈哈哈。

2.解析數(shù)據(jù)

這里我們請(qǐng)求網(wǎng)址得到的數(shù)據(jù)它并沒(méi)有在html元素標(biāo)簽里面,所以就不能用lxml,css選擇器等這些來(lái)解析數(shù)據(jù)。這里我們用re正則來(lái)解析數(shù)據(jù),得到的數(shù)據(jù)看到起來(lái)好像字典類型,但是它并不是,所以我們還需要用json來(lái)把它轉(zhuǎn)化成字典類型的數(shù)據(jù)方便我們提取。

這里用json轉(zhuǎn)化為字典類型的數(shù)據(jù)后,不好查看時(shí),可以用pprint來(lái)打印查看。

importpprint

pprint.pprint(parse_data_dict)

3.完整代碼

importrequests

importre

importjson

importcsv

importtime

fromrandomimportrandom

fromfake_useragentimportUserAgent

defspider_python(key_word):

headers={

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',

'Accept-Language':'zh-CN,zh;q=0.9',

'Cache-Control':'no-cache',

'Connection':'keep-alive',

'Pragma':'no-cache',

'Sec-Fetch-Dest':'document',

'Sec-Fetch-Mode':'navigate',

'Sec-Fetch-Site':'same-origin',

'Sec-Fetch-User':'1',

'Upgrade-Insecure-Requests':'1',

'User-Agent':UserAgent().Chrome,

'sec-ch-ua':'"NotA;Brand";v="99","Chromium";v="100","GoogleChrome";v="100"',

'sec-ch-ua-mobile':'0',

'sec-ch-ua-platform':'"Windows"',

params={

'lang':'c',

'postchannel':'0000',

'workyear':'99',

'cotype':'99',

'degreefrom':'99',

'jobterm':'99',

'companysize':'99',

'ord_field':'0',

'dibiaoid':'0',

'line':'',

'welfare':'',

save_time=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()).replace('','_').replace(':','_')

file_path=f'./testDataPython-{save_time}.csv'

f_csv=open(file_path,mode='w',encoding='utf-8',newline='')

fieldnames=['公司名字','職位名字','薪資','工作地點(diǎn)',

'招聘要求','公司待遇','招聘更新時(shí)間','招聘發(fā)布時(shí)間',

'公司人數(shù)','公司類型','companyind_text','job_href','company_href']

dict_write=csv.DictWriter(f_csv,fieldnames=fieldnames)

dict_write.writeheader()

page=0#頁(yè)數(shù)

error_time=0#在判斷職位名字中是否沒(méi)有關(guān)鍵字的次數(shù),這里定義出現(xiàn)200次時(shí),while循環(huán)結(jié)束

#(因?yàn)樵谒阉鲘徫幻謺r(shí)(如:搜索python),會(huì)在網(wǎng)站20多頁(yè)時(shí)就沒(méi)有關(guān)于python的崗位了,但是仍然有其它的崗位出現(xiàn),所以這里就需要if判斷,使其while循環(huán)結(jié)束)

flag=True

whileflag:

page+=1

print(f'第{page}抓取中……')

try:

time.sleep(random()*3)#這里隨機(jī)休眠一下,簡(jiǎn)單反爬處理,反正我們用的是單線程爬取,也不差那一點(diǎn)時(shí)間是吧

url='這里你們自己構(gòu)建url吧,從上面的圖片應(yīng)該能看出,我寫(xiě)出來(lái)的話實(shí)在是不行,過(guò)不了審核,難受?。?!'

###這里還是要添加cookies的好,我們要偽裝好不是?防止反爬,如果你用上面提供的方法,也就很快的構(gòu)建出cookies。

response=requests.get(url=url,params=params,headers=headers)

except:

print(f'\033[31m第{page}請(qǐng)求異常!033[0m')

flag=False

parse_data=re.findall('"engine_jds":(.*),"jobid_count"',response.text)

parse_data_dict=json.loads(parse_data[0])

#importpprint

#pprint.pprint(parse_data_dict)

#exit()

foriinparse_data_dict:

###在這里要處理下異常,因?yàn)樵谂廊《囗?yè)時(shí),可能是網(wǎng)站某些原因會(huì)導(dǎo)致這里的結(jié)構(gòu)變化

try:

companyind_text=i['companyind_text']

exceptExceptionase:

print(f'\033[31m異常:{e}033[0m')

companyind_text=None

dic={

'公司名字':i['company_name'],

'職位名字':i['job_name'],

'薪資':i['providesalary_text'],

'工作地點(diǎn)':i['workarea_text'],

'招聘要求':''.join(i['attribute_text']),

'公司待遇':i['jobwelf'],

'招聘更新時(shí)間':i['updatedate'],

'招聘發(fā)布時(shí)間':i['issuedate'],

'公司人數(shù)':i['companysize_text'],

'公司類型':i['companytype_text'],

'companyind_text':companyind_text,

'job_href':i['job_href'],

'company_href':i['company_href'],

if'Python'indic['職位名字']or'python'indic['職位名字']:

dict_write.writerow(dic)

print(dic['職位名字'],'——保存完畢!')

else:

error_time+=1

iferror_time==200:

flag=False

print('抓取完成!')

f_csv.close()

if__name__=='__main__':

key_word='python'

#key_word='java'##這里不能輸入中文,網(wǎng)址做了url字體加密,簡(jiǎn)單的方法就是直接從網(wǎng)頁(yè)url里面復(fù)制下來(lái)用(如:前端)

#key_word='%25E5%2589%258D%25E7%25AB%25AF'#前端

spider_python(key_word)

二、數(shù)據(jù)可視化篇

1.數(shù)據(jù)可視化庫(kù)選用

本次數(shù)據(jù)可視化選用的是pyecharts第三方庫(kù),它制作圖表是多么的強(qiáng)大與精美?。。∠胍獙?duì)它進(jìn)行一些簡(jiǎn)單地了解話可以前往這篇博文:

/article/247122.htm

安裝:pipinstallpyecharts

2.案例實(shí)戰(zhàn)

本次要對(duì)薪資、工作地點(diǎn)、招聘要求里面的經(jīng)驗(yàn)與學(xué)歷進(jìn)行數(shù)據(jù)處理并可視化。

(1).柱狀圖Bar

按住鼠標(biāo)中間滑輪或鼠標(biāo)左鍵可進(jìn)行調(diào)控。

importpandasaspd

frompyechartsimportoptionsasopts

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

python_data['工作地點(diǎn)']=[i.split('-')[0]foriinpython_data['工作地點(diǎn)']]

city=python_data['工作地點(diǎn)'].value_counts()

###柱狀圖

frompyecharts.chartsimportBar

c=(

Bar()

.add_xaxis(city.index.tolist())#城市列表數(shù)據(jù)項(xiàng)

.add_yaxis("Python",city.values.tolist())#城市對(duì)應(yīng)的崗位數(shù)量列表數(shù)據(jù)項(xiàng)

.set_global_opts(

title_opts=opts.TitleOpts(title="Python招聘崗位所在城市分布情況"),

datazoom_opts=[opts.DataZoomOpts(),opts.DataZoomOpts(type_="inside")],

xaxis_opts=opts.AxisOpts(name='城市'),#設(shè)置x軸名字屬性

yaxis_opts=opts.AxisOpts(name='崗位數(shù)量'),#設(shè)置y軸名字屬性

.render("bar_datazoom_both.html")

(2).地圖Map

省份

這里對(duì)所在省份進(jìn)行可視化。

importpandasaspd

importcopy

frompyechartsimportoptionsasopts

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

python_data_deepcopy=copy.deepcopy(python_data)#深復(fù)制一份數(shù)據(jù)

python_data['工作地點(diǎn)']=[i.split('-')[0]foriinpython_data['工作地點(diǎn)']]

city=python_data['工作地點(diǎn)'].value_counts()

city_list=[list(ct)forctincity.items()]

defprovince_city():

'''這是從接口里爬取的數(shù)據(jù)(不太準(zhǔn),但是誤差也可以忽略不計(jì)!)'''

area_data={}

withopen('./中國(guó)省份_城市.txt',mode='r',encoding='utf-8')asf:

forlineinf:

line=line.strip().split('_')

area_data[line[0]]=line[1].split(',')

province_data=[]

forctincity_list:

fork,vinarea_data.items():

foriinv:

ifct[0]ini:

ct[0]=k

province_data.append(ct)

area_data_deepcopy=copy.deepcopy(area_data)

forkinarea_data_deepcopy.keys():

area_data_deepcopy[k]=0

foriinprovince_data:

ifi[0]inarea_data_deepcopy.keys():

area_data_deepcopy[i[0]]=area_data_deepcopy[i[0]]+i[1]

province_data=[[k,v]fork,vinarea_data_deepcopy.items()]

best=max(area_data_deepcopy.values())

returnprovince_data,best

province_data,best=province_city()

#地圖_中國(guó)地圖(帶省份)Map-VisualMap(連續(xù)型)

c2=(

Map()

.add("Python",province_data,"china")

.set_global_opts(

title_opts=opts.TitleOpts(title="Python招聘崗位——全國(guó)分布情況"),

visualmap_opts=opts.VisualMapOpts(max_=int(best/2)),

.render("map_china.html")

這是中國(guó)省份_城市.txt里面的內(nèi)容,通過(guò)[接口]抓取到的中國(guó)地區(qū)信息。

源碼:

importrequests

importjson

header={

"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/94.0.4606.81Safari/537.36",

response=requests.get('/weather2025/search/city.js',headers=header)

result=json.loads(response.text[len('varcity_data='):])

print(result)

each_province_data={}

f=open('./中國(guó)省份_城市.txt',mode='w',encoding='utf-8')

fork,vinresult.items():

province=k

ifkin['上海','北京','天津','重慶']:

city=','.join(list(v[k].keys()))

else:

city=','.join(list(v.keys()))

f.write(f'{province}_{city}\n')

each_province_data[province]=city

f.close()

print(each_province_data)

城市

這里對(duì)所在城市進(jìn)行可視化。

importpandasaspd

importcopy

frompyechartsimportoptionsasopts

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

python_data_deepcopy=copy.deepcopy(python_data)#深復(fù)制一份數(shù)據(jù)

python_data['工作地點(diǎn)']=[i.split('-')[0]foriinpython_data['工作地點(diǎn)']]

city=python_data['工作地點(diǎn)'].value_counts()

city_list=[list(ct)forctincity.items()]

###地圖_中國(guó)地圖(帶城市)——Map-VisualMap(分段型)

frompyecharts.chartsimportMap

c1=(

Map(init_opts=opts.InitOpts(width="1244px",height="700px",page_title='Map-中國(guó)地圖(帶城市)',bg_color="#f4f4f4"))

.add(

"Python",

city_list,

"china-cities",#地圖

label_opts=opts.LabelOpts(is_show=False),

.set_global_opts(

title_opts=opts.TitleOpts(title="Python招聘崗位——全國(guó)分布情況"),

visualmap_opts=opts.VisualMapOpts(max_=city_list[0][1],is_piecewise=True),

.render("map_china_cities.html")

地區(qū)

這里對(duì)上海地區(qū)可視化。

importpandasaspd

importcopy

frompyechartsimportoptionsasopts

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

python_data_deepcopy=copy.deepcopy(python_data)#深復(fù)制一份數(shù)據(jù)

shanghai_data=[]

sh=shanghai_data.append

foriinpython_data_deepcopy['工作地點(diǎn)']:

if'上海'ini:

iflen(i.split('-'))1:

sh(i.split('-')[1])

shanghai_data=pd.Series(shanghai_data).value_counts()

shanghai_data_list=[list(sh)forshinshanghai_data.items()]

#上海地圖

c3=(

Map()

.add("Python",shanghai_data_list,"上海")###這個(gè)可以更改地區(qū)(如:成都)這里改了的話,上面的數(shù)據(jù)處理也要做相應(yīng)的更改

.set_global_opts(

title_opts=opts.TitleOpts(title="Map-上海地圖"),

visualmap_opts=opts.VisualMapOpts(max_=shanghai_data_list[0][1])

.render("map_shanghai.html")

(3).餅圖Pie

Pie1

frompyechartsimportoptionsasopts

frompyecharts.chartsimportPie

importpandasaspd

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

require_list=[]

rl=require_list.append

foriinpython_data['招聘要求']:

if'經(jīng)驗(yàn)'ini:

rl(i.split('')[1])

else:

rl('未知')

python_data['招聘要求']=require_list

require=python_data['招聘要求'].value_counts()

require_list=[list(ct)forctinrequire.items()]

print(require_list)

c=(

Pie()

.add(

require_list,

radius=["40%","55%"],

label_opts=opts.LabelOpts(

position="outside",

formatter="{a|{a}}{abg|}\n{hr|}\n{b|:}{c}{per|escum6k%}",

background_color="#eee",

border_color="#aaa",

border_width=1,

border_radius=4,

rich={

"a":{"color":"#999","lineHeight":22,"align":"center"},

"abg":{

"backgroundColor":"#e3e3e3",

"width":"100%",

"align":"right",

"height":22,

"borderRadius":[4,4,0,0],

"hr":{

"borderColor":"#aaa",

"width":"100%",

"borderWidth":0.5,

"height":0,

"b":{"fontSize":16,"lineHeight":33},

"per":{

"color":"#eee",

"backgroundColor":"#334455",

"padding":[2,4],

"borderRadius":2,

.set_global_opts(

title_opts=opts.TitleOpts(title="工作經(jīng)驗(yàn)要求"),

legend_opts=opts.LegendOpts(padding=20,pos_left=500),

.render("pie_rich_label.html")

)

Pie2

frompyechartsimportoptionsasopts

frompyecharts.chartsimportPie

importpandasaspd

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

xueli_list=[]

xl=xueli_list.append

foriinpython_data['招聘要求']:

iflen(i.split(''))==3:

xl(i.split('')[2])

else:

xl('未知')

python_data['招聘要求']=xueli_list

xueli_require=python_data['招聘要求'].value_counts()

xueli_require_list=[list(ct)forctinxueli_require.items()]

c=(

Pie()

.add(

xueli_require_list,

radius=["30%","55%"],

rosetype="area",

.set_global_opts(title_opts=opts.TitleOpts(title="學(xué)歷要求"))

.render("pie_rosetype.html")

(4).折線圖Line

這里對(duì)薪資情況進(jìn)行可視化。

importpandasaspd

importre

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

sal=python_data['薪資']

xin_zi1=[]

xin_zi2=[]

xin_zi3=[]

xin_zi4=[]

xin_zi5=[]

xin_zi6=[]

forsinsal:

s=str(s)

if'千'ins:

xin_zi1.append(s)

else:

ifre.findall('-(.*)萬(wàn)',s):

s=float(re.findall('-(.*)萬(wàn)',s)[0])

if1.0s=1.5:

xin_zi2.append(s)

elif1.5s=2.5:

xin_zi3.append(s)

elif2.5s=3.2:

xin_zi4.append(s)

elif3.2s=4.0:

xin_zi5.append(s)

else:

xin_zi6.append(s)

xin_zi=[['10k',len(xin_zi1)],['10~15k',len(xin_zi2)],['1525k',len(xin_zi3)],

['2532k',len(xin_zi4)],['3240k',len(xin_zi5)],['40k',len(xin_zi6),]]

importpyecharts.optionsasopts

frompyecharts.chartsimportLine

x,y=[i[0]foriinxin_zi],[i[1]foriinxin_zi]

c2=(

Line()

.add_xaxis(x)

.add_yaxis(

"Python",

markpoint_opts=opts.MarkPointOpts(

data=[opts.MarkPointItem(name="max",coord=[x[2],y[2]],value=y[2])]#name='自定義標(biāo)記點(diǎn)'

.set_global_opts(title_opts=opts.TitleOpts(title="薪資情況"),

xaxis_opts=opts.AxisOpts(name='薪資范圍'),#設(shè)置x軸名字屬性

yaxis_opts=opts.AxisOpts(name='數(shù)量'),#設(shè)置y軸名字屬性

.render("line_markpoint_custom.html")

(5).組合圖表

最后,將多個(gè)html上的圖表進(jìn)行合并成一個(gè)html圖表。

首先,我們執(zhí)行下面這串格式的代碼(只寫(xiě)了四個(gè)圖表,自己做相應(yīng)添加即可)

importpandasaspd

frompyecharts.chartsimportBar,Map,Pie,Line,Page

frompyechartsimportoptionsasopts

python_data=pd.read_csv('./testDataPython-2025-05-01_11_48_36.csv')

python_data['工作地點(diǎn)']=[i.split('-')[0]foriinpython_data['工作地點(diǎn)']]

city=python_data['工作地點(diǎn)'].value_counts()

city_list=[list(ct)forctincity.items()]

###柱狀圖

defbar_datazoom_slider()-Bar:

c=(

Bar()

.add_xaxis(city.index.tolist())#城市列表數(shù)據(jù)項(xiàng)

.add_yaxis("Python",city.values.tolist())#城市對(duì)應(yīng)的崗位數(shù)量列表數(shù)據(jù)項(xiàng)

.set_global_opts(

title_opts=opts.TitleOpts(title="Python招聘崗位所在城市分布情況"),

datazoom_opts=[opts.DataZoomOpts(),opts.DataZoomOpts(type_="inside")],

xaxis_opts=opts.AxisOpts(name='城市'),#設(shè)置x軸名字屬性

yaxis_opts=opts.AxisOpts(name='崗位數(shù)量'),#設(shè)置y軸名字屬性

returnc

#地圖_中國(guó)地圖(帶省份)Map-VisualMap(連續(xù)型)

defmap_china()-Map:

importcopy

area_data={}

withopen('./中國(guó)省份_城市.txt',mode='r',encoding='utf-8')asf:

forlineinf:

line=line.strip().split('_')

area_data[line[0]]=line[1].split(',')

province_data=[]

forctincity_list:

fork,vinarea_data.items():

foriinv:

ifct[0]ini:

ct[0]=k

province_data.append(ct)

area_data_deepcopy=copy.deepcopy(area_data)

forkinarea_data_deepcopy.keys():

area_data_deepcopy[k]=0

foriinprovince_data:

ifi[0]inarea_data_deepcopy.keys():

area_data_deepcopy[i[0]]=area_data_deepcopy[i[0]]+i[1]

province_data=[[k,v]fork,vinarea_data_deepcopy.items()]

best=max(area_data_deepcopy.values())

c=(

Map()

.add("Python",province_data,"china")

.set_global_opts(

title_opts=opts.TitleOpts(title="Python招聘崗位——全國(guó)分布情況"),

visualmap_opts=opts.VisualMapOpts(max_=int(best/2)),

returnc

defpie_rich_label()-Pie:

require_list=[]

rl=require_list.append

foriinpython_data['招聘要求']:

if'經(jīng)驗(yàn)'ini:

rl(i.split('')[1])

else:

rl('未知')

python_data['招聘要求']=require_list

require=python_data['招聘要求'].value_counts()

require_list=[list(ct)forctinrequire.items()]

c=(

Pie()

.add(

require_list,

radius=["40%","55%"],

label_opts=opts.LabelOpts(

position="outside",

formatter="{a|{a}}{abg|}\n{hr|}\n{b|:}{c}{per|ek28oke%}",

background_color="#eee",

border_color="#aaa",

border_width=1,

border_radius=4,

rich={

"a":{"color":"#999","lineHeight":22,"align":"center"},

"abg":{

"backgroundColor":"#e3e3e3",

"width":"100%",

"align":"right",

"height":22,

"borderRadius":[4,4,0,0],

"hr":{

"borderColor":"#aaa",

"width":"100%",

"borderWidth":0.5,

"height":0,

"b":{"fontSize":16,"lineHeight":33},

"per":{

"color":"#eee",

"backgroundColor":"#334455",

"padding":[2,4],

"borderRadius":2,

.set_global_opts(

title_opts=opts.TitleOpts(title="工作經(jīng)驗(yàn)要求"),

legend_opts=opts.LegendOpts(padding=20,pos_left=500),

returnc

defline_markpoint_custom()-Lin

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論