亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用Python網(wǎng)絡(luò)爬蟲技術(shù)追蹤時事熱點

        2019-04-18 07:44:42廖澤龍王昊源劉紫嫣
        智富時代 2019年2期
        關(guān)鍵詞:時間軸源代碼爬蟲

        廖澤龍 王昊源 劉紫嫣

        【摘 要】互聯(lián)網(wǎng)時代,信息復(fù)雜多樣,查找一件新聞事件的所有報道,時常難以以時間順序正常游覽所有報道,給讀者帶來不好的閱讀體驗,部分新聞事件經(jīng)過一段時間發(fā)展后會被人遺忘,使得不少人只知新聞早期報道,而不知后續(xù)發(fā)展。“新聞時間軸自動化”是一個基于Python爬蟲的項目,該項目可自動或人工創(chuàng)建新聞詞條,利用Python網(wǎng)絡(luò)爬蟲技術(shù)獲取“新聞詞條”的收錄權(quán)威信息,并可根據(jù)信息內(nèi)容的發(fā)布時間報道順序自動建立起新聞的時間軸,從而方便讀者閱讀新聞及理清邏輯。

        【關(guān)鍵詞】Pyhton;requests庫;BeautifulSoup庫;MySQLdb模塊;網(wǎng)絡(luò)爬蟲

        1.相關(guān)技術(shù)簡介

        1.1 requests庫和BeautifulSoup庫

        requests是Python第三方工具包,是實現(xiàn)爬蟲所常用的HTTP庫,主要用于自動爬取HTML頁面,自動網(wǎng)絡(luò)請求提交等。

        BeautifulSoup是一個非常流行的Python第三方工具包,可實現(xiàn)解析網(wǎng)頁,并提供定位內(nèi)容的便捷接口。利用它不用編寫正則表達(dá)式也能方便的實現(xiàn)網(wǎng)頁信息的抓取,利用BeautifulSoup編寫的代碼雖然有時比正則表達(dá)式復(fù)雜,但其更容易構(gòu)造和理解,也無需擔(dān)心類似多余的空格和標(biāo)簽屬性這種布局上的小變化。Beautiful Soup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,還支持一些第三方的解析器,如果我們不安裝它,則 Python 會使用 Python默認(rèn)的解析器。

        在Python網(wǎng)絡(luò)爬蟲中,以上兩個庫通常結(jié)合使用,requests庫實現(xiàn)自動爬取頁面 源代碼,再通過BeautifulSoup庫在頁面源代碼中定向提取所需要的內(nèi)容。[1]

        2.“新聞時間軸自動化”的設(shè)計

        第一步:在云服務(wù)器下通過Python爬蟲程序獲取新聞事件的關(guān)鍵詞;第二步,以關(guān)鍵詞為線索開始自動化的定向爬取工作,從而獲取關(guān)于目標(biāo)事件的權(quán)威報道;第三步:將爬取到的內(nèi)容按一定順序和編碼導(dǎo)出至數(shù)據(jù)庫或緩存到云服務(wù)器中;第四步:借助Python或JSP等方法連接數(shù)據(jù)庫并將數(shù)據(jù)庫或緩存到云服務(wù)器中的數(shù)據(jù)輸出到頁面上,從而完成新聞時間軸。

        3.“新聞時間軸自動化”的實現(xiàn)

        3.1獲取新聞事件的關(guān)鍵詞

        通過分析百度的“搜索風(fēng)云榜”或新浪微博的“實時熱搜榜”頁面源代碼,建立定向爬蟲,從而獲得新聞詞條的關(guān)鍵詞;以百度的“搜索風(fēng)云榜”為例,該網(wǎng)頁的網(wǎng)址為:http://top.baidu.com/buzz?b=341&c=513&fr=topbuzz_b1_c513,通過分析其頁面源代碼可知新聞事件關(guān)鍵詞都位于一個

        標(biāo)簽下,在
        標(biāo)簽下,每個標(biāo)簽對應(yīng)一個我們需要獲取的新聞事件的關(guān)鍵詞。利用requests庫的requests.get()函數(shù)把頁面所有信息爬取下來,通過以上的觀察來設(shè)定來BeautifulSoup庫中find()函數(shù)的查找對象,繼而獲取關(guān)鍵詞。為了使后續(xù)爬蟲獲取信息更加豐富和精確,可使用Python結(jié)巴分詞對所獲關(guān)鍵詞進(jìn)行搜索模式的切分。

        3.1.1主要代碼:

        以爬取百度“搜索風(fēng)云榜”關(guān)鍵詞為例:

        #創(chuàng)建空列表,用于儲存詞條

        tops = []

        #創(chuàng)建空列表,用于儲存關(guān)鍵詞

        keywords = []

        url = 'http://top.baidu.com/buzz?b=341&c=513&fr=topbuzz_b1_c513'

        #獲得url信息,設(shè)置40秒超時時間

        r = requests.get(url, timeout=40)

        #失敗請求(非200響應(yīng))拋出異常

        r.raise_for_status()

        #根據(jù)內(nèi)容分析出的編碼方式,備選編碼;

        r.encoding = r.apparent_encoding

        #獲得的HTML文本

        html = r.text

        #對獲得的文本進(jìn)行html解析,查找

        內(nèi)的信息

        table = BeautifulSoup(html,"html.parser").find("table")

        for words in table.find_all("a"):

        if words.string !='search' and words.string !='新聞' \

        and words.string !='視頻'and words.string !='圖片':

        tops.append(words.string)

        else:

        continue

        topsList = jieba.cut_for_search(tops[3])

        #分關(guān)鍵詞(搜索模式)

        keywords.append(" ".join(topsList))

        3.2獲取權(quán)威新聞報道:

        以3.1爬取的關(guān)鍵詞為目標(biāo),通過與3.1.1類似的操作來定向爬取權(quán)威新聞網(wǎng)站的相關(guān)報道,為方便后續(xù)的數(shù)據(jù)展示,可按需增加爬取內(nèi)容,如:標(biāo)題、內(nèi)容、發(fā)布時間、網(wǎng)址等……

        3.2.1主要代碼:

        以爬取關(guān)鍵詞在“澎湃新聞”中的相關(guān)報道為例:

        #創(chuàng)建空列表,用于儲存新聞標(biāo)題

        newsTitles = []

        #創(chuàng)建空列表,用于儲存新聞發(fā)布時間

        newsTime = []

        #創(chuàng)建空列表,用于儲存新聞頁面網(wǎng)址

        newsUrls = []

        pengpaiSearUrl = https://www.thepaper.cn/searchResult.jsp?inpsearch={nnnew}

        #設(shè)置新聞關(guān)鍵詞,以“長春長生”為例

        testString="長春長生"

        #利用format()函數(shù)設(shè)定爬取的關(guān)鍵詞

        pengpaiNews = pengpaiSearUrl.format(nnnew=testString)

        nnnew=keywords[0]

        print(pengpaiNews)

        #獲得url信息,設(shè)置60秒超時時間

        r = requests.get(pengpaiNews, timeout=60)

        r.raise_for_status()

        r.encoding = r.apparent_encoding

        #獲得的HTML文本

        html = r.text

        print(html)

        #對獲得的文本進(jìn)行html解析,查找id='mainContent'

        h2 = BeautifulSoup(html,"html.parser").find(id='mainContent')

        for aimNews in h2.find_all('h2'):

        newsTitles.append(aimNews.getText())

        print(newsTitles)

        #獲取新聞的扼要和時間

        for aimUrls in h2.find_all('a', href=True):

        if aimUrls.get_text(strip=True):

        if len(aimUrls['href'])>10:

        newsUrls.append(pengpaiUrl+aimUrls['href'])

        r = requests.get(pengpaiUrl+aimUrls['href'], timeout=40)

        r.raise_for_status()

        r.encoding = r.apparent_encoding

        herfHtml = r.text

        #print(herfHtml)

        aimTime=BeautifulSoup(herfHtml,"html.parser").find

        (class_="news_about")

        if aimTime!=None:

        htmlTime=aimTime.getText()

        #利用正則表達(dá)式匹配時間

        mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2})",htmlTime)

        newsTime.append(mat.group(0))

        else:

        newsTime.append("視頻(error)")

        3.3數(shù)據(jù)存儲:

        數(shù)據(jù)存儲有多種方式,其中有兩種常用的方法——寫入數(shù)據(jù)庫或?qū)懭隿sv文件。寫入數(shù)據(jù)庫的大致方法如下:第一步,利用Python的第三方庫pymysql庫連接MySQL數(shù)據(jù)庫,在指定數(shù)據(jù)庫下創(chuàng)建表;[2]第二步,將3.1、3.2爬取到的數(shù)據(jù)寫入創(chuàng)建的表中。

        3.4數(shù)據(jù)顯示:

        在Web服務(wù)器上,先利用JSP連接數(shù)據(jù)庫,讀取指定數(shù)據(jù)庫中的數(shù)據(jù),將數(shù)據(jù)輸出至已編寫好的JSP頁面中,最后將JSP文件保存在網(wǎng)站服務(wù)器的指定目錄,完成上述操作后數(shù)據(jù)即可顯示在相應(yīng)頁面上,從而自動生成新聞時間軸。

        4.總結(jié)

        近幾年,Python網(wǎng)絡(luò)爬蟲十分流行,發(fā)展迅速,目前已有多種Python爬蟲平臺,如Scrapy、Crawley?!靶侣剷r間軸自動化”項目利用Python標(biāo)準(zhǔn)庫與第三方庫,實現(xiàn)在無人監(jiān)督的條件下對時事熱點的自動搜索與收錄,圍繞著熱點搜索和爬取權(quán)威報道,并對得到的數(shù)據(jù)進(jìn)行展示,整個過程簡單,移植性強(qiáng),對環(huán)境等要求不高。

        【參考文獻(xiàn)】

        [1].Beautiful Soup 4.2.0 文檔[EB/OL].https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/.

        [2].Python3 MySQL 數(shù)據(jù)庫連接[EB/OL].http://www.runoob.com/python3/

        python3-mysql.html.

        猜你喜歡
        時間軸源代碼爬蟲
        改革開放以來黨的歷屆三中全會時間軸
        人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
        時間軸上二階非線性非自治延遲動力系統(tǒng)的振動性
        基于TXL的源代碼插樁技術(shù)研究
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        時間軸里的“共和國記憶”
        金橋(2019年12期)2019-08-13 07:16:28
        軟件源代碼非公知性司法鑒定方法探析
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        av在线免费观看麻豆| 亚洲va中文字幕无码久久不卡| 99亚洲精品久久久99| 无码人妻丝袜在线视频| 成av人片一区二区三区久久| 亚洲禁区一区二区三区天美| 国产欧美日韩一区二区加勒比| 少妇高潮流白浆在线观看| 激情欧美日韩一区二区| 成年女人窝窝视频| 男女视频在线观看一区二区 | 国产精品自产拍在线观看中文| 有码中文字幕一区二区| 手机在线播放av网址| 婷婷色香五月综合缴缴情| 国产精品嫩草影院av| 日本a级大片免费观看| 蜜桃av噜噜噜一区二区三区| 日本一区二区视频在线| 亚洲日韩中文字幕无码一区| 日本又黄又爽gif动态图| 禁止免费无码网站| 蜜桃码一区二区三区在线观看| 粗大挺进孕妇人妻在线| 国产精品三级一区二区按摩| 黑人大群体交免费视频| 亚洲性av少妇中文字幕| 国产精品久色婷婷不卡| 成人网站在线进入爽爽爽| 四川老熟女下面又黑又肥| 国产黑色丝袜在线观看视频| 中文字幕人妻激情在线视频| 在线免费观看一区二区| 国产午夜无码片在线观看影院| 亚洲一区二区三区av链接| 午夜一区二区在线视频| 国产毛女同一区二区三区| 中文字幕aⅴ人妻一区二区| 久久国产亚洲精品超碰热| 黑丝国产精品一区二区| 亚洲毛片一区二区在线|