• 
    

    
    

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

      智能信息采集器軟件開發(fā)實踐

      2021-06-16 13:25:50傅駿傅馨竹吳高靜丁才愈龍輝陽熊子淇
      關(guān)鍵詞:信息采集二次開發(fā)

      傅駿 傅馨竹 吳高靜 丁才愈 龍輝陽 熊子淇

      The Software Development Practice of Intelligent Information Collector

      FU Jun1, FU Xin-zhu2, WU Gao-jing1, DING Cai-yu1, LONG Hui-yang1, XIONG Zi-qi1

      (1.Department of Materials Engineering, Sichuan Engineering Technical College, Deyang 618000, China;

      2.Junior Middle School, Deyang No.5 Middle School, Deyang 618000, China)

      【摘? 要】應(yīng)用爬蟲技術(shù)開發(fā)的智能信息采集器,可以幫助用戶及時獲得工程學(xué)院、鑄造院校、焊接行業(yè)、軍事網(wǎng)站的最新消息。論文選用tkinter進(jìn)行界面設(shè)計,應(yīng)用python爬蟲技術(shù)對xpath、抓取到的日期、網(wǎng)址進(jìn)行了處理,順利實現(xiàn)抓取消息并獲得消息的網(wǎng)址。用戶可以進(jìn)一步打開感興趣的網(wǎng)頁進(jìn)行詳細(xì)閱讀。

      【Abstract】The intelligent information collector developed with crawler technology can help users get the latest information of Engineering College, Foundry College, welding industry and military websites in time. The paper selects and uses tkinter to design the interface, and uses python crawler technology to process the xpath, the fetched date, and the URL, which smoothly realized fetching the message and getting the URL of the message. Users can further open the web pages of interest for detailed reading.

      【關(guān)鍵詞】爬蟲技術(shù);信息采集;python;二次開發(fā);xpath

      【Keywords】crawler technology; information collection; python; secondary development; xpath

      【中圖分類號】TP311.5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2021)05-0192-02

      1 引言

      網(wǎng)絡(luò)信息時代,資訊鋪天蓋地、紛繁復(fù)雜。科學(xué)院所、行業(yè)企業(yè)和政府部門需要知道最新的科學(xué)前沿、法律法規(guī)和工作動態(tài)的網(wǎng)頁信息,從而作出決策。但冗雜的網(wǎng)頁信息在他們查找時是很困難的。本團隊在完成省級課題“厲害了,我的國——建國以來重大科技成就科普作品”過程中經(jīng)常需要緊跟科技成果和技術(shù)發(fā)展,這就要對指定的相關(guān)度高的網(wǎng)站進(jìn)行消息搜索。如果逐一搜索這些網(wǎng)站的欄目,花費時間長并且經(jīng)常容易遺漏,團隊基于python爬蟲技術(shù)設(shè)計了“智能信息采集器”,有效解決了這一問題。

      2 技術(shù)基礎(chǔ)

      2.1 python

      網(wǎng)絡(luò)爬蟲按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息,可以采集所有其能夠訪問到的頁面內(nèi)容,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。獲取網(wǎng)頁消息,目前技術(shù)手段有python爬蟲技術(shù)以及各種爬蟲框架,本團隊采用python爬蟲技術(shù)進(jìn)行設(shè)計。tkinter模塊是python的標(biāo)準(zhǔn)GUI工具包接口,可以非常方便實現(xiàn)很多直觀的功能。tkinter是python自帶庫,不需下載安裝,可直接使用[1]。

      2.2 獲取xpath

      xpath是一門在XML文檔中查找信息的語言。在瀏覽器中,打開網(wǎng)頁,右鍵“審查元素”,打開“DockSide”,單擊左上方的“Select an element in the page to inspect it(Ctrl+Shift+C)”按鈕,單擊網(wǎng)頁中的消息,在html代碼中,右鍵“copy/xpath”,可以獲得消息的xpath[2]。

      3 開發(fā)實踐

      3.1 總體設(shè)計

      變量表。每一段的局部變量newa、urla、timea;全局變量newlist、urllist、timelist;各個單位名稱用label,依次為label2、label3……每個單位名稱下有若干個欄目,用復(fù)選框CheckButton,CheckButton命名為單位名稱+欄目名稱字母縮寫,用復(fù)選框Checkbutton.variable聯(lián)系起來。

      將newlist、urllist、timelist清空;如果選中了某個單位的某個欄目,則運行對應(yīng)的def;運行后,抓取的全部新聞標(biāo)題添加到newlist、網(wǎng)址添加到urllist、日期添加到timelist中。運行全部欄目后,獲取newlist的長度numbber。urlx、newx、timx清空,num=0;獲取希望的時間段zj變量值。從i=0到numbber,依次讀取timelist[i]的值,如果時間符合zj,則num加1,且將newlist、uellist對應(yīng)的值添加到urlx[num]、newx[num]。

      一共有num條符合時間段的選取欄目的新聞。若num>0,則在窗體2上顯示出來。i=0--num,將newx[i]依次用Button顯示出來。若num=0,則提示“本次新聞數(shù)為0”,并用information予以提示。

      3.2 界面設(shè)計

      主界面上有行業(yè)按鈕(見圖1),“工程學(xué)院”“鑄造院?!薄爸袊こ淘骸薄昂附有袠I(yè)”“軍事愛好者”等。點開相應(yīng)按鈕,進(jìn)入對應(yīng)的程序。關(guān)鍵代碼是:

      mainwin=Tk()

      mainwin.title('智能信息采集器')

      mainwin.geometry('500x100+450+100')

      mainwin.resizable(0,0)

      mainwin["background"]="LightSkyBlue"

      openscetc=Button(mainwin,text="四川工程",command=四川工程).place(x=30,y=35)

      opencast=Button(mainwin,text="鑄造院校",command=打開鑄造).place(x=136,y=35)

      openmil=Button(mainwin,text="軍事愛好者",command=軍事愛好者).place(x=350,y=35)

      openweld=Button(mainwin,text="焊接行業(yè)",command=焊接企業(yè)).place(x=244,y=35)

      mainwin.mainloop()

      點開按鈕,打開對應(yīng)的信息采集器。圖2是焊接行業(yè)信息采集器。

      3.3 網(wǎng)頁解析

      爬蟲獲取網(wǎng)頁數(shù)據(jù)的基本過程是:發(fā)送請求、獲取響應(yīng)數(shù)據(jù)、解析并提取數(shù)據(jù)、向用戶展示爬取結(jié)果。發(fā)送請求可以采用requests模塊或selenium模塊。解析數(shù)據(jù)可以選用re正則、bs4(BeautifulSoup4)或xpath。項目組經(jīng)過技術(shù)調(diào)研,采用了requests模塊和xpath。標(biāo)題和日期通常是不同的xpath。用xpath1/text()抓取消息標(biāo)題,xpath1/@href抓取消息的鏈接,用xpath2/text()抓取消息的日期。關(guān)鍵代碼是[3,4]:

      import requests

      from lxml import etree

      import webbrowser

      html=requests.get(url,headers=heade)

      html.encoding='簡體中文'

      news=etree.HTML(html.text)

      newstitle=news.xpath('xpath1/text()')? #抓取消息的標(biāo)題

      newsurl=news.xpath('xpath1/@href')? ?#抓取消息的鏈接

      newsdate=news.xpath('xpath2/text()') #抓取消息的日期

      3.4 xpath的處理

      在DockSide中獲得的xpath有多種類型,需要根據(jù)情況進(jìn)行處理。以下是常見的3種xpath類型:

      ①一頁上1個xpath。最簡單的一種情況是拷貝網(wǎng)頁上的兩條消息后,比較中括號內(nèi)數(shù)字,刪除數(shù)字有變化的中括號,則可以抓取該xpath下所有的消息。②同一頁上有1個以上xpath。按照①的方法刪除中括號后只能抓取到網(wǎng)頁上部分消息,則此時要拷貝出沒有被抓取到消息的xpath,逐條比對,再次運行,直到確保全部抓取。③只保留根xpath。在DockSide中獲得的xpath通常有若干級,但由于站群系統(tǒng)的區(qū)別,不能成功抓取,解決辦法是只留下根xpath即可成功抓取。

      3.5 獲取URL

      在采用xpath/@href的方法獲得的網(wǎng)址,需要print進(jìn)行觀察,通常有以下兩類情況:①獲取完整的網(wǎng)址,可以直接使用;②僅抓取到網(wǎng)頁帶日期的部分,則可以通過預(yù)設(shè)preurl解決。

      3.6 獲取日期

      通過xpath2/text()抓取到的消息日期date,統(tǒng)一為yyyy-mm-dd格式。亦通過print進(jìn)行觀察,通常有以下三類情況:①分隔符不是短橫線.對形如yyyy/mm/dd、yyyy年mm月dd日的日期,用replace替換。date=date.replace('/','-').replace(('年','-').replace((月'','-').replace(('日','')②首尾有其他字符。對形如[yyyy-mm-dd]的日期,亦用replace替換。date=date.replace('[','').replace((']','-')③包含時間。對形如2021-01-31 10:01的日期數(shù)據(jù),只留下年月日,則截取前10個字符。date=date[0:10]

      3.7 時間段的處理

      消息時間段分為今天、近三天、本周、近一個月。判斷time.mktime(today)與timeStamp的差值。

      today=time.localtime(time.time())

      today=int(time.mktime(today))

      timeArray=time.strptime(timelist, '%Y-%m-%d')

      timeStamp=int(time.mktime(timeArray))

      shij=(today-timeStamp)/(24*3600)

      圖3是圖2中“焊接質(zhì)檢+中國工程焊接協(xié)會+焊接之家+近一月”的檢索結(jié)果。

      4 結(jié)語

      應(yīng)用爬蟲技術(shù)開發(fā)了智能信息采集器,可以分別采集四川工程職業(yè)技術(shù)學(xué)院、鑄造院校、焊接行業(yè)、軍事網(wǎng)站的最新網(wǎng)頁消息,滿足不同用戶的需求。提供給用戶免費使用后,受到了用戶的歡迎。

      科學(xué)技術(shù)日新月異,完全可以利用這些技術(shù)開發(fā)一些適合自己使用的小程序,滿足個性化需求。應(yīng)用本項目技術(shù)開發(fā)的作品參加大學(xué)生系列競賽,獲得了多項獎勵。

      【參考文獻(xiàn)】

      【1】戴瑗,鄭傳行.基于Python的南京二手房數(shù)據(jù)爬取及分析[J].計算機時代,2021(1):37-40+45.

      【2】李文華.解析網(wǎng)絡(luò)爬蟲技術(shù)原理[J].福建電腦,2021,37(1):95-96.

      【3】許景賢,林錦程,程雨萌.Selenium框架的反爬蟲程序設(shè)計與實現(xiàn)[J].福建電腦,2021,37(1):26-29.

      【4】傅駿,鄭丁元,張峻寧,等.Python爬蟲技術(shù)在文獻(xiàn)計量學(xué)中應(yīng)用實踐[J].計算機產(chǎn)品與流通,2019(7):133.

      猜你喜歡
      信息采集二次開發(fā)
      淺談基于Revit平臺的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對倒棱機床界面二次開發(fā)
      如何提高卷煙零售市場信息采集的有效性
      計算機網(wǎng)絡(luò)技術(shù)在信息工程中的應(yīng)用
      電力信息采集系統(tǒng)中對載波現(xiàn)場測試儀的應(yīng)用
      用電信息采集系統(tǒng)安全防護(hù)
      基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
      玉山县| 叶城县| 密山市| 西吉县| 铁岭市| 中江县| 隆化县| 三门县| 谷城县| 泾川县| 工布江达县| 文成县| 南城县| 秭归县| 乡宁县| 平江县| 新乡县| 上犹县| 柘荣县| 泰宁县| 上杭县| 平定县| 太和县| 普陀区| 南漳县| 镇康县| 成武县| 佛山市| 玉屏| 南城县| 都昌县| 余干县| 石首市| 闵行区| 宁河县| 额敏县| 文昌市| 阳信县| 华阴市| 石狮市| 平和县|