山東建筑大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)《基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)》_第1頁(yè)
山東建筑大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)《基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)》_第2頁(yè)
山東建筑大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)《基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)》_第3頁(yè)
山東建筑大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)《基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)》_第4頁(yè)
山東建筑大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)《基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)》_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、山東建筑大學(xué)課 程 設(shè) 計(jì) 成 果 報(bào) 告題 目: 基于Python的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)課 程: 計(jì)算機(jī)網(wǎng)絡(luò)A院 (部): 管理工程學(xué)院專(zhuān) 業(yè): 信息管理與信息系統(tǒng)班 級(jí): 學(xué)生姓名:學(xué) 號(hào): 指導(dǎo)教師: 完成日期: 1目 錄1 設(shè)計(jì)目的12 設(shè)計(jì)任務(wù)內(nèi)容13 網(wǎng)絡(luò)爬蟲(chóng)程序總體設(shè)計(jì)14 網(wǎng)絡(luò)爬蟲(chóng)程序詳細(xì)設(shè)計(jì)14.1 設(shè)計(jì)環(huán)境和目標(biāo)分析14.1.1 設(shè)計(jì)環(huán)境14.1.2 目標(biāo)分析24.2 爬蟲(chóng)運(yùn)行流程分析24.3 控制模塊詳細(xì)設(shè)計(jì)34.3 爬蟲(chóng)模塊詳細(xì)設(shè)計(jì)34.3.1 URL管理器設(shè)計(jì)34.3.2 網(wǎng)頁(yè)下載器設(shè)計(jì)34.3.3 網(wǎng)頁(yè)解析器設(shè)計(jì)34.4數(shù)據(jù)輸出器詳細(xì)設(shè)計(jì)45 調(diào)試與測(cè)試45.1 調(diào)試過(guò)程中

2、遇到的問(wèn)題45.2測(cè)試數(shù)據(jù)及結(jié)果顯示56 課程設(shè)計(jì)心得與體會(huì)57 參考文獻(xiàn)68 附錄1 網(wǎng)絡(luò)爬蟲(chóng)程序設(shè)計(jì)代碼69 附錄2 網(wǎng)絡(luò)爬蟲(chóng)爬取的數(shù)據(jù)文檔9101 設(shè)計(jì)目的本課程設(shè)計(jì)是信息管理與信息系統(tǒng)專(zhuān)業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完計(jì)算機(jī)網(wǎng)絡(luò)課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計(jì)的目的和任務(wù):1鞏固和加深學(xué)生對(duì)計(jì)算機(jī)網(wǎng)絡(luò)基本知識(shí)的理解和掌握;2培養(yǎng)學(xué)生進(jìn)行對(duì)網(wǎng)絡(luò)規(guī)劃、管理及配置的能力或加深對(duì)網(wǎng)絡(luò)協(xié)議體系結(jié)構(gòu)的理解或提高網(wǎng)絡(luò)編程能力;3提高學(xué)生進(jìn)行技術(shù)總結(jié)和撰寫(xiě)說(shuō)明書(shū)的能力。2 設(shè)計(jì)任務(wù)內(nèi)容網(wǎng)絡(luò)爬蟲(chóng)是從web中發(fā)現(xiàn),下載以及存儲(chǔ)內(nèi)容,是搜索引擎的核心部分。傳統(tǒng)爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL

3、開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿(mǎn)足系統(tǒng)的一定停止條件。參照開(kāi)放源碼分析網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)方法,給出設(shè)計(jì)方案,畫(huà)出設(shè)計(jì)流程圖。選擇自己熟悉的開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)抓取頁(yè)面、從而形成結(jié)構(gòu)化數(shù)據(jù)的基本功能,界面適當(dāng)美化。給出軟件測(cè)試結(jié)果。3 網(wǎng)絡(luò)爬蟲(chóng)程序總體設(shè)計(jì)URL管理器數(shù)據(jù)輸出器網(wǎng)頁(yè)下載器網(wǎng)頁(yè)解析器爬蟲(chóng)控制器在本爬蟲(chóng)程序中共有三個(gè)模塊:1、 爬蟲(chóng)調(diào)度端:?jiǎn)?dòng)爬蟲(chóng),停止爬蟲(chóng),監(jiān)視爬蟲(chóng)的運(yùn)行情況2、 爬蟲(chóng)模塊:包含三個(gè)小模塊,URL管理器、網(wǎng)頁(yè)下載器、網(wǎng)頁(yè)解析器。(1) URL管理器:對(duì)需要爬取的URL和已經(jīng)爬取過(guò)的URL進(jìn)行管理,可以從UR

4、L管理器中取出一個(gè)待爬取的URL,傳遞給網(wǎng)頁(yè)下載器。(2) 網(wǎng)頁(yè)下載器:網(wǎng)頁(yè)下載器將URL指定的網(wǎng)頁(yè)下載下來(lái),存儲(chǔ)成一個(gè)字符串,傳遞給網(wǎng)頁(yè)解析器。(3) 網(wǎng)頁(yè)解析器:網(wǎng)頁(yè)解析器解析傳遞的字符串,解析器不僅可以解析出需要爬取的數(shù)據(jù),而且還可以解析出每一個(gè)網(wǎng)頁(yè)指向其他網(wǎng)頁(yè)的URL,這些URL被解析出來(lái)會(huì)補(bǔ)充進(jìn)URL管理器3、數(shù)據(jù)輸出模塊:存儲(chǔ)爬取的數(shù)據(jù)4 網(wǎng)絡(luò)爬蟲(chóng)程序詳細(xì)設(shè)計(jì)4.1 設(shè)計(jì)環(huán)境和目標(biāo)分析4.1.1 設(shè)計(jì)環(huán)境IDE:pycharmPython版本:python2.7.134.1.2 目標(biāo)分析目標(biāo):從百度詞條Python開(kāi)始,以廣度優(yōu)先的方式,爬取相關(guān)聯(lián)的若干詞條網(wǎng)頁(yè)的標(biāo)題和簡(jiǎn)介(1)初

5、始URL:"(2)詞條頁(yè)面URL格式:(3) 數(shù)據(jù)格式:標(biāo)題<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1>簡(jiǎn)介<div class="lemma-summary" label-module="lemmaSummary">(4)頁(yè)面編碼:utf-84.2 爬蟲(chóng)運(yùn)行流程分析爬蟲(chóng)程序的運(yùn)行流程如圖所示。(1) 爬蟲(chóng)控制器從給定的URL開(kāi)始,將給定的初始URL添加到URL管理器中,然后調(diào)用URL管理器的相關(guān)方法,判斷是否有待爬

6、取的URL(2) URL判斷是否有待爬取的URL,如果有待爬取的URL,則返回給控制器,控制器將這個(gè)URL傳遞給網(wǎng)頁(yè)下載器,下載該網(wǎng)頁(yè)(3) 網(wǎng)頁(yè)下載器將下載好的數(shù)據(jù)返回給控制器,控制器再將返回的數(shù)據(jù)傳遞給網(wǎng)頁(yè)解析器解析(4) 網(wǎng)頁(yè)解析器解析網(wǎng)頁(yè)之后獲取網(wǎng)頁(yè)數(shù)據(jù)和網(wǎng)頁(yè)的URL鏈接,再將這兩個(gè)數(shù)據(jù)傳遞給控制器(5) 控制器得到解析出來(lái)的數(shù)據(jù)之后,將新的URL鏈接傳遞給URL管理器,將價(jià)值數(shù)據(jù)傳遞給數(shù)據(jù)輸出器輸出(6) 數(shù)據(jù)輸出器以文本的形式輸出傳遞進(jìn)來(lái)的數(shù)據(jù)。(7) 回到第一步,循環(huán)4.3 控制模塊詳細(xì)設(shè)計(jì)爬蟲(chóng)控制器主要負(fù)責(zé)調(diào)度各個(gè)模塊,所以在設(shè)計(jì)的時(shí)候只需要一次調(diào)用其他模塊的方法,給對(duì)應(yīng)的模塊

7、傳遞數(shù)據(jù)即可。比較簡(jiǎn)單,可參見(jiàn)附錄1查看源碼。4.3 爬蟲(chóng)模塊詳細(xì)設(shè)計(jì)4.3.1 URL管理器設(shè)計(jì)URL管理器主要管理待抓取的URL集合和已抓取的URL集合。URL管理器設(shè)計(jì)的難點(diǎn)在于:防止重復(fù)抓取,防止循環(huán)抓取。判斷是否還有待爬取URL添加新URL到待爬取集合中獲取待爬取URLURL管理器將URL從待爬取集合移動(dòng)端已爬取集合判斷待添加URL是否在容器中常用的URL管理器存儲(chǔ)方式有三種,一是使用python內(nèi)存即set集合來(lái)存儲(chǔ)URL,二是使用數(shù)據(jù)庫(kù),例如MySQL,三是使用緩存數(shù)據(jù)庫(kù),例如redis。因?yàn)檫@只是個(gè)簡(jiǎn)單的python爬蟲(chóng),所以我們選擇利用內(nèi)存存儲(chǔ)URL。建立兩個(gè)集合,一個(gè)為待爬

8、取集合,一個(gè)為已爬取集合,功能上圖所示。4.3.2 網(wǎng)頁(yè)下載器設(shè)計(jì)網(wǎng)頁(yè)下載器是將互聯(lián)網(wǎng)上URL對(duì)應(yīng)的網(wǎng)頁(yè)下載到本地的工具。Python常用的網(wǎng)頁(yè)下載器有兩種,一個(gè)是python自帶的urllib2,一個(gè)是第三方包requests。這里我們選用的是urllib2,比較簡(jiǎn)單的網(wǎng)頁(yè)下載工具,其中最簡(jiǎn)潔的下載網(wǎng)頁(yè)的代碼如下:import urllib2response = urllib2.urlopen(url)# 如果請(qǐng)求碼不是200,則表示請(qǐng)求不成功。# 典型的錯(cuò)誤包括404(頁(yè)面無(wú)法找到),403(請(qǐng)求禁止),401(待驗(yàn)證的請(qǐng)求)# 5XX 回應(yīng)代碼以“5”開(kāi)頭的狀態(tài)碼表示服務(wù)器端發(fā)現(xiàn)自己出現(xiàn)

9、錯(cuò)誤,不能繼續(xù)執(zhí)行請(qǐng)求if response.getcode() != 200: print "download html failed"cont= response.read()4.3.3 網(wǎng)頁(yè)解析器設(shè)計(jì)網(wǎng)頁(yè)解析器是從網(wǎng)頁(yè)中提取有價(jià)值數(shù)據(jù)的工具。價(jià)值數(shù)據(jù)網(wǎng)頁(yè)解析器新URL列表HTML網(wǎng)頁(yè)字符串Python常用的解析器有四種,一是正則表達(dá)式,二是html.parser,三是beautifulSoup,四是lxml。這里我選用的是beautifulSoup作為我的網(wǎng)頁(yè)解析器,相對(duì)于正則表達(dá)式來(lái)說(shuō),使用beautifulSoup來(lái)解析網(wǎng)頁(yè)更為簡(jiǎn)單。beautifulSoup將網(wǎng)

10、頁(yè)轉(zhuǎn)化為DOM樹(shù)來(lái)解析,每一個(gè)節(jié)點(diǎn)是網(wǎng)頁(yè)的每個(gè)標(biāo)簽,通過(guò)它提供的方法,你可以很容易的通過(guò)每個(gè)節(jié)點(diǎn)獲取你想要的信息。使用方法如下:#創(chuàng)建BeautifulSoup對(duì)象soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')#查找所有標(biāo)簽為a的節(jié)點(diǎn),且href匹配正則表達(dá)式links = soup.find_all('a', href=pile(r"/item/%")#查找所欲標(biāo)簽為div的節(jié)點(diǎn)summary_node = soup.find(

11、9;div', class_="lemma-summary")4.4數(shù)據(jù)輸出器詳細(xì)設(shè)計(jì)數(shù)據(jù)輸出器是負(fù)責(zé)數(shù)據(jù)輸出的工具。如果要輸出的文件不存在,程序會(huì)自動(dòng)創(chuàng)建,并且每次重寫(xiě)之前都會(huì)清空網(wǎng)頁(yè)的內(nèi)容。這里我選擇的輸出方式是TXT文檔,直接將數(shù)據(jù)分析器得到的數(shù)據(jù)存儲(chǔ)在output.txt文件中。5 調(diào)試與測(cè)試5.1 調(diào)試過(guò)程中遇到的問(wèn)題(1) 爬取第一個(gè)頁(yè)面之后沒(méi)有新的頁(yè)面解決方案:根據(jù)子網(wǎng)頁(yè),選擇合適的正則表達(dá)式(1)測(cè)試過(guò)程中某些網(wǎng)頁(yè)中缺少標(biāo)題或簡(jiǎn)介。解決方案:往集合中添加數(shù)據(jù)的時(shí)候,判斷一下是否為空,不為空再添加。5.2測(cè)試數(shù)據(jù)及結(jié)果顯示測(cè)試的結(jié)果以txt文檔形式顯示

12、,生成的文檔路徑和代碼路徑一致、6 課程設(shè)計(jì)心得與體會(huì)Python是一門(mén)面向?qū)ο蟮慕忉屝哉Z(yǔ)言(腳本語(yǔ)言),這一類(lèi)語(yǔ)言的特點(diǎn)就是不用編譯,程序在運(yùn)行的過(guò)程中,由對(duì)應(yīng)的解釋器向CPU進(jìn)行翻譯,個(gè)人理解就是一邊編譯一邊執(zhí)行。而Java這一類(lèi)語(yǔ)言是需要預(yù)先編譯的。沒(méi)有編譯最大的痛苦就是無(wú)法進(jìn)行斷點(diǎn)調(diào)試,唯一的辦法就是在有疑問(wèn)的地方打印各個(gè)變量的值來(lái)進(jìn)行調(diào)試。這一類(lèi)語(yǔ)言也沒(méi)用類(lèi)型,也就是說(shuō)一個(gè)變量即可能是int型,但是也可能是String型,而且可以隨時(shí)變化。     python對(duì)于代碼格式要求也相當(dāng)嚴(yán)格,通過(guò)對(duì)于縮進(jìn)的距離來(lái)判斷代碼是否處于同一個(gè)代碼

13、塊。  Python也不依靠分號(hào)來(lái)決定一句代碼是否結(jié)束,一行代碼就是一句代碼。這樣做的好處在于代碼編寫(xiě)看上去很統(tǒng)一,不過(guò)習(xí)慣了java再看python,一開(kāi)始還真的有點(diǎn)懵。  總得來(lái)說(shuō),對(duì)Python的初涉感覺(jué)不錯(cuò),這門(mén)語(yǔ)言相比較Java更加的簡(jiǎn)潔,這次的課設(shè)是初步接觸python,以后會(huì)自己深入學(xué)習(xí)。7 參考文獻(xiàn)1 錢(qián)程,陽(yáng)小蘭,朱福喜等.基于Python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)J.黑龍江科技信息,2016,(36):273.2 戚利娜,劉建東.基于Python的簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)J.電腦編程技巧與維護(hù),2017,(8):72-73.3 Wesley.J.C,C

14、ore Python Programming. 2001-9-118 附錄1 網(wǎng)絡(luò)爬蟲(chóng)程序設(shè)計(jì)代碼spiderMain.py# coding:utf-8import loggingfrom webCraler import url_manager, html_downloader, html_outputer, html_parserclass SpiderMain(object): #初始化URL管理器,網(wǎng)頁(yè)下載器,網(wǎng)頁(yè)解析器和數(shù)據(jù)輸出器 def _init_(self): self.urls = url_manager.UrlManager() self.downloader = html

15、_downloader.HtmlDownloader() self.parser = html_parser.HtmlParser() self.outputer = html_outputer.HtmlOutputer() #爬取網(wǎng)頁(yè) def craw(self, url): count = 1 #向URL管理器添加新的URL self.urls.add_new_url(url) while self.urls.has_new_url(): try: #如果有新的URL,獲取這個(gè)新的URL new_url = self.urls.get_new_url() #打印這是第幾個(gè)爬取的URL pr

16、int 'craw %d : %s' % (count, new_url) #使用網(wǎng)頁(yè)下載器下載這個(gè)網(wǎng)頁(yè)的內(nèi)容 html_cont = self.downloader.download(new_url) #使用網(wǎng)頁(yè)解析器解析這個(gè)網(wǎng)頁(yè)的內(nèi)容,分別為URL和數(shù)據(jù) new_urls, new_data = self.parser.parse(new_url, html_cont) #將解析器解析的 RL添加到URL管理器 self.urls.add_new_urls(new_urls) #將解析器解析的數(shù)據(jù)傳遞給數(shù)據(jù)輸器 self.outputer.collect_data(new_

17、data) # 爬取10個(gè)數(shù)據(jù)后自動(dòng)結(jié)束 if count = 20: break count = count+1 except Exception as e: logging.exception(e) print 'craw failed' #數(shù)據(jù)輸出器將數(shù)據(jù)使用HTML的方式輸出 self.outputer.output_html()if _name_ = '_main_': print "begin" root_url = " obj_spider = SpiderMain() obj_spider.craw(root_url

18、)url_manager.py# coding:utf-8class UrlManager(object): def _init_(self): self.new_urls = set() self.old_urls = set() # 添加URL def add_new_url(self, url): if url is None: return if url not in self.new_urls and url not in self.old_urls: self.new_urls.add(url) def add_new_urls(self, urls): if urls is No

19、ne or len(urls) = 0: return for url in urls: self.add_new_url(url) def has_new_url(self): return len(self.new_urls) != 0 def get_new_url(self): new_url = self.new_urls.pop() self.old_urls.add(new_url) return new_urlhtml_downloader.py# coding:utf-8import urllib2class HtmlDownloader(object): def downl

20、oad(self, url): if url is None: return None response = urllib2.urlopen(url) # 如果請(qǐng)求碼不是200,則表示請(qǐng)求不成功。 # 典型的錯(cuò)誤包括404(頁(yè)面無(wú)法找到),403(請(qǐng)求禁止),401(待驗(yàn)證的請(qǐng)求) # 5XX 回應(yīng)代碼以“5”開(kāi)頭的狀態(tài)碼表示服務(wù)器端發(fā)現(xiàn)自己出現(xiàn)錯(cuò)誤,不能繼續(xù)執(zhí)行請(qǐng)求 if response.getcode() != 200: print "download html failed" return None return response.read()url_parse.p

21、y# coding:utf-8import urlparsefrom bs4 import BeautifulSoupimport reclass HtmlParser(object): def parse(self, page_url, html_cont): if page_url is None or html_cont is None: return soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8') #解析URL列表,獲取URL new_urls = self._g

22、et_new_urls(page_url, soup) # 解析數(shù)據(jù) new_data = self._get_new_date(page_url, soup) print new_data return new_urls, new_data def _get_new_urls(self, page_url, soup): new_urls = set() # # links = soup.find_all('a', href=pile(r"/item/%") for link in links: new_url = link'href' #

23、 new_full_url = urlparse.urljoin(" new_urls.add(new_full_url) return new_urls def _get_new_date(self, page_url, soup): res_data = # url res_data'url' = page_url # <dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1> title_node = soup.find('dd',class_

24、="lemmaWgt-lemmaTitle-title").find('h1') res_data'title' = title_node.get_text() # <div class="lemma-summary" label-module="lemmaSummary"> summary_node = soup.find('div', class_="lemma-summary") #這句話有可能出現(xiàn)空! res_data'summary

25、9; = summary_node.get_text() print res_data'summary' return res_datahtml_outputer.py# coding:utf-8class HtmlOutputer(object): def _init_(self): # 建立列表存放數(shù)據(jù) self.datas = # 收集數(shù)據(jù) def collect_data(self, data): if data is None: return self.datas.append(data) # 輸出數(shù)據(jù) def output_html(self): fout = op

26、en('output.txt', 'w') for data in self.datas: fout.write(data'url'+"n") fout.write(data'title'.encode('utf-8') fout.write(data'summary'.encode('utf-8')+"nn") fout.close()9 附錄2 網(wǎng)絡(luò)爬蟲(chóng)爬取的數(shù)據(jù)文檔PythonPython1 (英國(guó)發(fā)音:/pan/ 美國(guó)發(fā)音:/

27、pan/), 是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議2 。Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語(yǔ)句縮進(jìn)。Python具有豐富和強(qiáng)大的庫(kù)。它常被昵稱(chēng)為膠水語(yǔ)言,能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C+)很輕松地聯(lián)結(jié)在一起。常見(jiàn)的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其

28、中3 有特別要求的部分,用更合適的語(yǔ)言改寫(xiě),比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C+重寫(xiě),而后封裝為Python可以調(diào)用的擴(kuò)展類(lèi)庫(kù)。需要注意的是在您使用擴(kuò)展類(lèi)庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些可能不提供跨平臺(tái)的實(shí)現(xiàn)。編譯器簡(jiǎn)單講,編譯器就是將“一種語(yǔ)言(通常為高級(jí)語(yǔ)言)”翻譯為“另一種語(yǔ)言(通常為低級(jí)語(yǔ)言)”的程序。一個(gè)現(xiàn)代編譯器的主要工作流程:源代碼 (source code) 預(yù)處理器 (preprocessor) 編譯器 (compiler) 目標(biāo)代碼 (object code) 鏈接器 (Linker) 可執(zhí)行程序 (executables)高級(jí)計(jì)算機(jī)語(yǔ)言便于人編寫(xiě),閱讀交流,維護(hù)。機(jī)器語(yǔ)言是計(jì)算機(jī)能直接解讀、運(yùn)行的。編譯器將匯編或高級(jí)計(jì)算機(jī)語(yǔ)言源程序(Source program)作為輸入,翻譯成目標(biāo)語(yǔ)言(Target language)機(jī)器代碼的等價(jià)程序。源代碼一般為高級(jí)語(yǔ)言 (Hig

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論