• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      網(wǎng)絡(luò)爬蟲在科技文獻檢索中的應(yīng)用

      2021-06-07 07:09:49龍學(xué)磊田萌徐英王虹
      現(xiàn)代信息科技 2021年24期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲科技創(chuàng)新

      龍學(xué)磊 田萌 徐英 王虹

      摘 ?要:科技文獻檢索貫穿于整個科研活動的生命周期,從科研項目的申請、立項,到方案的設(shè)計與實現(xiàn),再到論文的撰寫與結(jié)題驗收,都離不開科技文獻檢索的支持,傳統(tǒng)的科技文獻檢索方式往往效率低下且準(zhǔn)確性不高。近些年,網(wǎng)絡(luò)爬蟲技術(shù)被廣泛應(yīng)用于互聯(lián)網(wǎng)搜索引擎當(dāng)中,可以按照預(yù)先設(shè)定好的規(guī)則自動地抓取特定網(wǎng)站信息。文章主要介紹了如何使用網(wǎng)絡(luò)爬蟲技術(shù)實現(xiàn)科技文獻檢索,從而大大提高科技文獻檢索效率及準(zhǔn)確性,更好地為科研工作服務(wù)。

      關(guān)鍵詞:科技創(chuàng)新;文獻檢索;網(wǎng)絡(luò)爬蟲;Python;Selenium

      中圖分類號:TP391 ? ? ? 文獻標(biāo)識碼:A文章編號:2096-4706(2021)24-0150-03

      Abstract: Scientific and technological literature retrieval runs through the whole life cycle of scientific research activities. From the application and establishment of scientific research projects, to the design and implementation of schemes, then to the writing and final acceptance of papers, it is inseparable from the support of scientific and technological literature retrieval. The traditional scientific and technological literature retrieval methods are often inefficient and inaccurate. In recent years, web crawler technology is widely used in Internet search engines, which can automatically grab specific website information according to preset rules. This paper mainly introduces how to use web crawler technology to realize scientific and technological literature retrieval, thus greatly improve the efficiency and accuracy of scientific and technological literature retrieval and better serve for the scientific research work.

      Keywords: science and technology innovation; literature retrieval; web crawler; Python; Selenium

      0 ?引 ?言

      科研工作大致可以分為四個基本步驟,即科研選題、資料收集、研究試驗、論文撰寫。每一步都離不開科技文獻檢索的支持,如果能夠掌握一種高效準(zhǔn)確的科技文獻檢索方式,可以達到事半功倍的效果,確保科研工作順利開展。

      科技文獻檢索是以現(xiàn)代信息檢索技術(shù)為核心,對科技文獻進行深層次分析和利用的技術(shù),可以使科研人員從繁重的搜索分析工作中解脫出來,從海量的信息中獲得最想要的信息。

      科技文獻檢索為科研人員的選題工作提供基礎(chǔ)保障,如果檢索一旦出現(xiàn)偏差將直接影響到科研項目的進度,甚至使整個科研項目走向失敗。精準(zhǔn)的科技文獻檢索,可以使科研人員快速、準(zhǔn)確的獲得自己所需的關(guān)鍵信息,大大節(jié)省搜集材料的時間,進而積極的推進整個科研項目進程[1]。

      傳統(tǒng)的檢索方式多采用手工操作的方式完成,由科研人員利用互聯(lián)網(wǎng)在搜索引擎中錄入想要獲得的關(guān)鍵字,然后對搜索結(jié)果進行人工篩選,而海量數(shù)據(jù)帶來的“信息過載”問題,大大增加了科研人員的檢索時間,也降低了查找準(zhǔn)確性,嚴(yán)重影響了工作效率。

      科技文獻檢索能力的高低,往往影響著科研成果的價值。每年的科研工作中會產(chǎn)生大量的科技文獻檢索需求,但受制于個人因素及技術(shù)限制,往往不能達到理想的效果。如何利用網(wǎng)絡(luò)爬蟲技術(shù)進行科技文獻檢索,協(xié)助廣大科研工作者做好科研工作,就成為一個新的課題。

      1 ?Python + Selenium + Chrome Driver瀏覽器爬蟲介紹

      1.1 ?Python語言

      Python是一種面向?qū)ο蟮膭討B(tài)數(shù)據(jù)類型腳本語言,不僅簡潔、易用,而且功能強大[2],具有跨平臺性、開發(fā)效率高、開源、可移植性好并且支持非常豐富的第三方庫等的特點[3],現(xiàn)在廣泛應(yīng)用于科學(xué)計算與科學(xué)統(tǒng)計工作、人工智能開發(fā)、網(wǎng)絡(luò)爬蟲等方面。

      1.2 ?Selenium工具

      Selenium是ThoughtWorks公司專門為Web應(yīng)用程序編寫的一個驗收測試工具,它直接運行在瀏覽器中,完全模擬瀏覽器的操作[4],比如跳轉(zhuǎn)、輸入、點擊、下拉等,通過代碼控制與頁面上元素進行交互(點擊、輸入等),獲取指定元素的內(nèi)容。測試工程師可以使用多種開發(fā)語言如Java、C#、Python等來編寫測試腳本,并且能夠在多種不同的瀏覽器中執(zhí)行測試腳本[5]。

      Selenium是Web應(yīng)用程序的自動化測試工具[6],可以模擬網(wǎng)站自動化測試、網(wǎng)站模擬登陸、自動操作鍵盤和鼠標(biāo)、測試瀏覽器兼容性、測試網(wǎng)站功能等操作,就像模擬真實用戶的操作,在爬蟲中被廣泛使用[7]。

      1.3 ?Chrome Driver瀏覽器驅(qū)動

      Chrome Driver是實現(xiàn) Web Driver 有線協(xié)議的一個開源工具,Selenium借助Chrome Driver通關(guān)操控Chrome的自動代理框架控制瀏覽器,它提供了導(dǎo)航到網(wǎng)頁、用戶輸入、JavaScript執(zhí)行等的能力。

      1.4 ?Python + Selenium + Chrome Driver瀏覽器爬蟲優(yōu)缺點

      1.4.1 ?優(yōu)點

      Python最常用的爬蟲框架為Scrapy框架,引擎控制調(diào)度器將request加入其中,調(diào)度器處理完成之后再送回引擎[8],但在模擬一些比較復(fù)雜的場景時,如輸入驗證碼、滑動驗證、登錄等操作時,無法解析js運行效果,無法達到最佳爬取效果。

      Python + Selenium + Chrome Driver瀏覽器爬蟲模擬瀏覽器的訪問操作,可以較好的執(zhí)行js運行,當(dāng)遇到復(fù)雜的滑動校驗和需要登錄時都能實現(xiàn)滿意的爬取效果[9]。

      1.4.2 ?缺點

      使用selenium本質(zhì)上是驅(qū)動瀏覽器對目標(biāo)站點發(fā)送請求,那瀏覽器在訪問目標(biāo)站點的時候,需要把靜態(tài)資源都加載完畢。html、css、js這些文件都要等待它加載完成,速度特別慢。由于在獲取頁面的過程中會發(fā)起多次交互請求,所以執(zhí)行效率較低。

      2 ?網(wǎng)絡(luò)爬蟲在科技文獻檢索中的具體實現(xiàn)

      2.1 ?爬取對象選取

      知網(wǎng)已成為當(dāng)下廣大科研工作者進行科技文獻查詢的首選網(wǎng)站,我們以此網(wǎng)站為爬取對象,通過知網(wǎng)檢索關(guān)鍵字,之后抓取相關(guān)文章的標(biāo)題、作者、摘要、關(guān)鍵詞等信息。

      2.2 ?爬取原理

      爬取原理具體內(nèi)容有:

      (1)運行Python腳本程序,調(diào)用Selenium測試工具啟動Chrome Driver瀏覽器驅(qū)動,開始啟動并開啟偵聽端口,并自動創(chuàng)建session,保持瀏覽器和對應(yīng)客戶端的會話連接;

      (2)輸入搜索條件,向瀏覽器發(fā)送http請求;

      (3)模擬瀏覽器運行,將爬取結(jié)果記入到列表當(dāng)中;

      (4)判斷爬取是否完成,如果完成則終止腳本運行,如未完成則重復(fù)執(zhí)行(3)中操作,如圖1所示。

      2.3 ?具體實現(xiàn)

      由于知網(wǎng)(http://www.cnki.net)采用反爬技術(shù),無法正常獲取相關(guān)文章信息,只得選取移動端(http://wap.cnki.net/)作為網(wǎng)絡(luò)爬蟲的入口地址。

      2.3.1 ?引入Selenium測試工具

      使用“pip install selenium”安裝Selenium測試工具,并將相關(guān)頭文件放置在程序最開頭部分。

      2.3.2 ?啟動Chrome Driver瀏覽器驅(qū)動并完成初始化

      啟動Chrome Driver瀏覽器驅(qū)動并完成初始化的具體步驟是:

      (1)設(shè)置谷歌瀏覽器驅(qū)動器的環(huán)境:

      options = webdriver.ChromeOptions()

      (2)創(chuàng)建一個谷歌瀏覽器驅(qū)動器:

      browser = webdriver.Chrome(options=options)

      (3)分析首頁信息,模擬搜索過程:

      打開移動端訪問頁面,按F12進入到調(diào)試模式,通過分析找到輸入框及搜索按鈕id值分別為“keyword”和“btn-search”。

      (4)找到輸入框的id,并將要搜索的關(guān)鍵字傳遞到輸入框當(dāng)中

      browser.find_element_by_id(‘keyword).click()

      browser.find_element_by_id(‘keyword_ordinary).send_keys(key_words)

      (5)輸入關(guān)鍵字之后,模擬點擊瀏覽器搜索按鈕事件

      browser.find_element_by_class_name(‘btn-search ‘).click()

      2.4 ?進入二級頁面獲取詳細(xì)信息

      使用find_element_by_class_name()方法獲取文獻的題目、作者、摘要等信息,并存儲到列表當(dāng)中。具體內(nèi)容有:

      (1)獲取文獻的題目:

      name = div.find_element_by_class_name(‘c-company__body-title).text

      (2)獲取文獻的作者:

      author = div.find_element_by_class_name(‘c-company__body-author).text

      (3)獲取文獻的摘要:

      content = browser.find_element_by_class_name(‘c-card__aritcle).text

      (4)聲明一個字典存儲爬取信息信息:

      data_dict = {}

      data_dict [‘作者] = author

      data_dict[‘題名] = name

      data_dict[‘摘要] = content

      data_dict[‘關(guān)鍵字] = key_worlds

      data_dict[‘來源] = source

      data_dict[‘發(fā)表時間] = datetime

      (5)將獲得的所有存儲到列表當(dāng)中:

      data_list.append(data)

      2.5 ?將信息存入Excel文件

      待信息收集完畢之后,將列表信息中文章的題目、作者、摘要、關(guān)鍵字、來源及發(fā)表時間等信息批量寫入到Excel文件當(dāng)中。具體步驟是:

      (1)調(diào)用open()方法,已寫入方式將信息寫入到data.cvs文件當(dāng)中:

      with open(‘data.csv, ‘w, encoding=utf-8, newline=) as f:

      (2)聲明writer對象:

      writer = csv.DictWriter(f, title)

      (3)批量寫入數(shù)據(jù):

      writer.writerows(data_list)

      2.6 ?爬取信息展示

      使用本文方法爬取的部分文獻信息如圖2所示。

      3 ?結(jié) ?論

      21世紀(jì)被譽為“知識爆炸”的時代,近百年來,人類創(chuàng)造的知識,特別是自然科學(xué)的知識,在短時期里以極高的速度增長起來,逐步改善著我們生活、學(xué)習(xí)的環(huán)境,越來越多的人投入到科學(xué)研究當(dāng)中??萍嘉墨I檢索伴隨整個科研的生命周期,一個好的科研項目從科研項目的申請、立項、方案的設(shè)計、試驗研究、數(shù)據(jù)的收集與分析到論文的撰寫都離不開科技文獻檢索的支持。隨著人才的不斷增長,科技文獻的數(shù)量急劇增加,如何從大量繁雜的文獻中快速準(zhǔn)確地查找到所需文獻,成為現(xiàn)代人需具備的一項技能[10],能否熟練運用現(xiàn)代科技文獻檢索技能高效準(zhǔn)確的獲取科研信息已成為科研成敗的關(guān)鍵。

      文章主要介紹了如何使用Python + Selenium + Chrome Driver瀏覽器爬蟲對知網(wǎng)相關(guān)文獻進行智能檢索,并將爬取到的題目、作者、摘要、關(guān)鍵字、來源、發(fā)表時間等信息保存到Excel表當(dāng)中,方便科研人員查詢。這種瀏覽器爬蟲可以按需自動下載相關(guān)文獻基礎(chǔ)信息,告別老式手工文件檢索方式,大大提高了科研人員科技文獻檢索的效率,為今后科研工作取得成功打下了堅實的基礎(chǔ)。

      參考文獻:

      [1] 韓玲.科技文獻檢索在科研選題中的重要作用 [J].江蘇科技信息,2019,36(33):11-13.

      [2] 李剛.瘋狂Python講義 [M].北京:電子工業(yè)出版社,2018.

      [3] 蔣程燕,孟令琴.基于Python語言的自動化測試應(yīng)用實例 [J].工業(yè)控制計算機,2021,34(10):109-110+113.

      [4] 羊昌燕,鄧印凱.基于Selenium的自動化測試框架設(shè)計 [J].信息技術(shù)與信息化,2021(10):65-68.

      [5] 夏克付,章曉勤.基于Selenium自動化測試框架的數(shù)據(jù)驅(qū)動技術(shù)研究及應(yīng)用 [J].齊齊哈爾大學(xué)學(xué)報(自然科學(xué)版),2019,35(6):18-22.

      [6] 蟲師.Selenium3自動化測試實戰(zhàn)——基于Python語言 [M].北京:電子工業(yè)出版社,2019.

      [7] 孫瑜.基于Scrapy框架的網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計與實現(xiàn) [D].北京:北京交通大學(xué),2019.

      [8] 單艷,張帆.基于Python的網(wǎng)頁信息爬取技術(shù)研究 [J].電子技術(shù)與軟件工程,2021(14):238-239.

      [9] 樊濤,趙征,劉敏娟.基于Selenium的網(wǎng)絡(luò)爬蟲分析與實現(xiàn) [J].電腦編程技巧與維護,2019(9):155-156+170.

      [10] 岳金鑫.論科技文獻檢索課程對本科生的必要性 [J].文化產(chǎn)業(yè),2021(28):105-107.

      作者簡介:龍學(xué)磊(1982—),男,漢族,河北秦皇島人,高級工程師,本科,研究方向:數(shù)據(jù)分析。

      猜你喜歡
      網(wǎng)絡(luò)爬蟲科技創(chuàng)新
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
      山東科技創(chuàng)新與農(nóng)業(yè)國際化戰(zhàn)略發(fā)展研究
      構(gòu)建推進科技創(chuàng)新的資金模式的研究
      東方教育(2016年17期)2016-11-23 11:02:07
      基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
      淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
      中國市場(2016年23期)2016-07-05 04:35:08
      關(guān)于產(chǎn)業(yè)集群效應(yīng)的研究
      永兴县| 高尔夫| 昆山市| 密山市| 武城县| 揭西县| 普安县| 宁明县| 普定县| 长葛市| 扶风县| 玛多县| 京山县| 松桃| 鲜城| 潍坊市| 新巴尔虎左旗| 鹤山市| 全南县| 瑞金市| 奉化市| 三原县| 安溪县| 吴江市| 全椒县| 白山市| 都江堰市| 静安区| 禹州市| 三亚市| 乐山市| 抚远县| 宜川县| 泸西县| 红河县| 抚宁县| 梧州市| 榕江县| 徐闻县| 德庆县| 三河市|