999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用Python網絡爬蟲技術追蹤時事熱點

2019-04-18 07:44:42廖澤龍王昊源劉紫嫣
智富時代 2019年2期
關鍵詞:頁面數據庫利用

廖澤龍 王昊源 劉紫嫣

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

【關鍵詞】Pyhton;requests庫;BeautifulSoup庫;MySQLdb模塊;網絡爬蟲

1.相關技術簡介

1.1 requests庫和BeautifulSoup庫

requests是Python第三方工具包,是實現爬蟲所常用的HTTP庫,主要用于自動爬取HTML頁面,自動網絡請求提交等。

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

在Python網絡爬蟲中,以上兩個庫通常結合使用,requests庫實現自動爬取頁面 源代碼,再通過BeautifulSoup庫在頁面源代碼中定向提取所需要的內容。[1]

2.“新聞時間軸自動化”的設計

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

3.“新聞時間軸自動化”的實現

3.1獲取新聞事件的關鍵詞

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

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

3.1.1主要代碼:

以爬取百度“搜索風云榜”關鍵詞為例:

#創建空列表,用于儲存詞條

tops = []

#創建空列表,用于儲存關鍵詞

keywords = []

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

#獲得url信息,設置40秒超時時間

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

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

r.raise_for_status()

#根據內容分析出的編碼方式,備選編碼;

r.encoding = r.apparent_encoding

#獲得的HTML文本

html = r.text

#對獲得的文本進行html解析,查找

內的信息

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])

#分關鍵詞(搜索模式)

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

3.2獲取權威新聞報道:

以3.1爬取的關鍵詞為目標,通過與3.1.1類似的操作來定向爬取權威新聞網站的相關報道,為方便后續的數據展示,可按需增加爬取內容,如:標題、內容、發布時間、網址等……

3.2.1主要代碼:

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

#創建空列表,用于儲存新聞標題

newsTitles = []

#創建空列表,用于儲存新聞發布時間

newsTime = []

#創建空列表,用于儲存新聞頁面網址

newsUrls = []

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

#設置新聞關鍵詞,以“長春長生”為例

testString="長春長生"

#利用format()函數設定爬取的關鍵詞

pengpaiNews = pengpaiSearUrl.format(nnnew=testString)

nnnew=keywords[0]

print(pengpaiNews)

#獲得url信息,設置60秒超時時間

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

r.raise_for_status()

r.encoding = r.apparent_encoding

#獲得的HTML文本

html = r.text

print(html)

#對獲得的文本進行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()

#利用正則表達式匹配時間

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數據存儲:

數據存儲有多種方式,其中有兩種常用的方法——寫入數據庫或寫入csv文件。寫入數據庫的大致方法如下:第一步,利用Python的第三方庫pymysql庫連接MySQL數據庫,在指定數據庫下創建表;[2]第二步,將3.1、3.2爬取到的數據寫入創建的表中。

3.4數據顯示:

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

4.總結

近幾年,Python網絡爬蟲十分流行,發展迅速,目前已有多種Python爬蟲平臺,如Scrapy、Crawley。“新聞時間軸自動化”項目利用Python標準庫與第三方庫,實現在無人監督的條件下對時事熱點的自動搜索與收錄,圍繞著熱點搜索和爬取權威報道,并對得到的數據進行展示,整個過程簡單,移植性強,對環境等要求不高。

【參考文獻】

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

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

python3-mysql.html.

猜你喜歡
頁面數據庫利用
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用一半進行移多補少
利用數的分解來思考
Roommate is necessary when far away from home
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 青草视频在线观看国产| 欧美亚洲另类在线观看| 亚洲娇小与黑人巨大交| 毛片三级在线观看| 亚洲AV一二三区无码AV蜜桃| 亚洲av无码成人专区| 亚洲精品无码高潮喷水A| 国产凹凸视频在线观看| 欧美精品成人一区二区视频一| 国产一区二区三区精品久久呦| 99视频在线免费| 欧美色综合网站| 91在线一9|永久视频在线| 成人毛片免费在线观看| 日韩欧美国产三级| 在线免费观看AV| 毛片久久网站小视频| 亚洲国产系列| 国产浮力第一页永久地址| 午夜a视频| 露脸国产精品自产在线播| 亚洲天堂网视频| 久久精品人人做人人综合试看| 色偷偷综合网| 欧美全免费aaaaaa特黄在线| 久热中文字幕在线| 亚洲av无码片一区二区三区| 欧美亚洲另类在线观看| 亚洲色图在线观看| 在线观看网站国产| 久久人与动人物A级毛片| 午夜成人在线视频| 日韩无码精品人妻| 亚洲成AV人手机在线观看网站| 国产xx在线观看| 国产精品露脸视频| 免费看一级毛片波多结衣| 被公侵犯人妻少妇一区二区三区| 尤物特级无码毛片免费| 亚洲欧美色中文字幕| 国产一区二区三区在线观看免费| 婷婷六月天激情| 亚洲欧洲日韩国产综合在线二区| 高清欧美性猛交XXXX黑人猛交| 日本欧美成人免费| 国产美女无遮挡免费视频| 亚洲天堂网在线观看视频| 国产精品性| AV不卡在线永久免费观看| 精品亚洲欧美中文字幕在线看| 亚洲品质国产精品无码| 成人免费一区二区三区| jizz在线免费播放| 99在线观看国产| 99久久国产综合精品女同 | 在线观看视频一区二区| 日韩国产一区二区三区无码| 成人免费午夜视频| 国产精品美女免费视频大全| 无码专区第一页| 男女男精品视频| 在线色国产| 一本一本大道香蕉久在线播放| 噜噜噜综合亚洲| 岛国精品一区免费视频在线观看| 91欧美亚洲国产五月天| 国产免费久久精品44| 国产无码精品在线播放| 被公侵犯人妻少妇一区二区三区| 激情国产精品一区| 欧美另类第一页| 精品少妇人妻一区二区| 欧美精品黑人粗大| 大陆精大陆国产国语精品1024| 亚洲天堂网在线视频| 国产又粗又猛又爽| 国产精品成人AⅤ在线一二三四 | 找国产毛片看| 亚洲色欲色欲www在线观看| 欧美人在线一区二区三区| 热思思久久免费视频| 亚洲日本韩在线观看|