日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析

瀏覽:33日期:2022-07-07 18:03:23

前言:

之前學(xué)習(xí)了用python爬蟲(chóng)的基本知識(shí),現(xiàn)在計(jì)劃用爬蟲(chóng)去做一些實(shí)際的數(shù)據(jù)統(tǒng)計(jì)功能。由于前段時(shí)間演員的誕生帶火了幾個(gè)年輕的實(shí)力派演員,想用爬蟲(chóng)程序搜索某論壇中對(duì)于某些演員的討論熱度,并按照日期統(tǒng)計(jì)每天的討論量。

這個(gè)項(xiàng)目總共分為兩步:

1.獲取所有帖子的鏈接:

將最近一個(gè)月內(nèi)的帖子鏈接保存到數(shù)組中

2.從回帖中搜索演員名字:

從數(shù)組中打開(kāi)鏈接,翻出該鏈接的所有回帖,在回帖中查找演員的名字

獲取所有帖子的鏈接:

搜索的范圍依然是以虎撲影視區(qū)為界限。虎撲影視區(qū)一天約5000個(gè)回帖,一月下來(lái)超過(guò)15萬(wàn)回帖,作為樣本來(lái)說(shuō)也不算小,有一定的參考價(jià)值。

完成這一步驟,主要分為以下幾步:

1.獲取當(dāng)前日期

2.獲取30天前的日期

3.記錄從第一頁(yè)往后翻的所有發(fā)帖鏈接

1.獲取當(dāng)前日期

這里我們用到了datetime模塊。使用datetime.datetime.now(),可以獲取當(dāng)前的日期信息以及時(shí)間信息。在這個(gè)項(xiàng)目中,只需要用到日期信息就好。

2.獲取30天前的日期

用datetime模塊的優(yōu)點(diǎn)在于,它還有一個(gè)很好用的函數(shù)叫做timedelta,可以自行計(jì)算時(shí)間差。當(dāng)給定參數(shù)days=30時(shí),就會(huì)生成30天的時(shí)間差,再用當(dāng)前日期減去delta,可以得到30天前的日期,將該日期保存為startday,即開(kāi)始進(jìn)行統(tǒng)計(jì)的日期。不然計(jì)算時(shí)間差需要自行考慮跨年閏年等因素,要通過(guò)一個(gè)較為復(fù)雜的函數(shù)才可以完成。

today = datetime.datetime.now()delta = datetime.timedelta(days=30)i = '%s' %(today - delta)startday = i.split(’ ’)[0]today = '%s' %todaytoday = today.split(’ ’)[0]

在獲得開(kāi)始日期與結(jié)束日期后,由于依然需要記錄每一天每個(gè)人的討論數(shù),根據(jù)這兩個(gè)日期生成兩個(gè)字典,分別為actor1_dict與actor2_dict。字典以日期為key,以當(dāng)日討論數(shù)目作為value,便于每次新增查找記錄時(shí)更新對(duì)應(yīng)的value值。

strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftimedays = (strptime(today, '%Y-%m-%d') - strptime(startday, '%Y-%m-%d')).daysfor i in range(days+1):temp = strftime(strptime(startday, '%Y-%m-%d') + datetime.timedelta(i), '%Y-%m-%d')actor1_dict[temp] = 0actor2_dict[temp] = 0

3.記錄從第一頁(yè)往后翻的所有發(fā)帖鏈接

Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析

​如圖1所示,采用發(fā)帖順序排列,可以得到所有的發(fā)帖時(shí)間(精確到分鐘)。右鍵并點(diǎn)擊查看網(wǎng)頁(yè)源代碼,可以發(fā)現(xiàn)當(dāng)前帖子的鏈接頁(yè)面,用正則表達(dá)式的方式抓取鏈接。

首先依然是獲取30天前的日期,再抓取第i頁(yè)的源代碼,用正則表達(dá)式去匹配,獲取網(wǎng)頁(yè)鏈接和發(fā)帖時(shí)間。如圖2所示:

Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析

比較發(fā)帖時(shí)間,如果小于30天前的日期,則獲取發(fā)帖鏈接結(jié)束,返回當(dāng)前拿到的鏈接數(shù)組,代碼如下

def all_movie_post(ori_url): i = datetime.datetime.now() delta = datetime.timedelta(days=30) i = '%s' %(i - delta) day = i.split(’ ’)[0] # 獲得30天前的日子 print day user_agent = ’Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)’ headers = { ’User-Agent’ : user_agent } post_list = [] for i in range(1,100): request = urllib2.Request(ori_url + ’-{}’.format(i),headers = headers) response = urllib2.urlopen(request) content = response.read().decode(’utf-8’) pattern = re.compile(’<a href='http://www.b3g6.com/bcjs/(.*?)' rel='external nofollow' >.*?<a style='color:#808080;cursor: initial; '>(.*?)</a>’, re.S) items = re.findall(pattern,content) for item in items: if item[1] == ’2011-09-16’:continue if item[1] > day: #如果是30天內(nèi)的帖子,保存post_list.append(’https://bbs.hupu.com’ + item[0]) else: #如果已經(jīng)超過(guò)30天了,就直接返回return post_list return post_list

函數(shù)的傳參是鏈接首頁(yè),在函數(shù)中修改頁(yè)碼,并繼續(xù)搜索。

從回帖中搜索演員名字:

接下來(lái)的步驟也是通過(guò)一個(gè)函數(shù)來(lái)解決。函數(shù)的傳參包括上一步中得到的鏈接數(shù)組,已經(jīng)想要查詢的演員名字(這個(gè)功能可以進(jìn)一步擴(kuò)展,將演員名字也用列表的形式傳輸,同時(shí)上一步生成的字典也可以多一些)。

由于虎撲論壇會(huì)將一些得到認(rèn)可的回帖擺在前端,即重復(fù)出現(xiàn)。如圖3所示:

Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析

​為了避免重復(fù)統(tǒng)計(jì),將這些重復(fù)先去除,代碼如下:

if i == 0:index = content.find(’更多亮了的回帖’)if index >= 0: content = content[index:]else: index = content.find(’我要推薦’) content = content[index:]

去除的規(guī)則其實(shí)并不重要,因?yàn)槊總€(gè)論壇都有自己的格式,只要能搞清楚源代碼中是怎么寫(xiě)的,剩下的操作就可以自己根據(jù)規(guī)則進(jìn)行。

每個(gè)回帖格式大致如圖4,

Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析

用對(duì)應(yīng)的正則表達(dá)式再去匹配,找到每個(gè)帖子每一個(gè)回帖的內(nèi)容,在內(nèi)容中搜索演員名字,即一開(kāi)始的actor_1與actor_2,如果搜到,則在對(duì)應(yīng)回帖日期下+1。

最終將兩位演員名字出現(xiàn)頻率返回,按日期記錄的字典由于是全局變量,不需要返回。

web_str = ’<span class='stime'>(.*?) .*?</span>.*?<tbody>[s]*<tr>[s]*<td>(.*?)<br />’ #找到回帖內(nèi)容的正則 pattern = re.compile(web_str, re.S) items = re.findall(pattern,content) for item in items:#if ’<b>引用’ in item: #如果引用別人的回帖,則去除引用部分 #try: #item = item.split(’</blockquote>’)[1] #except: #print item #print item.decode(’utf-8’)if actor_1 in item[1]: actor1_dict[item[0]] += 1 actor_1_freq += 1if actor_2 in item[1]: actor2_dict[item[0]] += 1 actor_2_freq += 1

至此,我們就利用爬蟲(chóng)知識(shí),成功完成對(duì)論壇關(guān)鍵字的頻率搜索了。

這只是一個(gè)例子,關(guān)鍵字可以任意,這也不只是一個(gè)針對(duì)演員的誕生而寫(xiě)的程序。將演員名字換成其他詞,就可以做到類似“您的年度關(guān)鍵字”這樣的結(jié)果,根據(jù)頻率大小來(lái)顯示文字大小。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲五月综合| 亚洲成人av观看| 一区二区三区国产盗摄| 免费成人在线视频观看| 国产亚洲精品v| 成人av二区| 午夜在线视频观看日韩17c| 久久亚洲国产精品一区二区| 日韩三级久久| 精品黄色一级片| 乱一区二区av| 97se综合| 日韩专区一卡二卡| 国产精区一区二区| 天堂√中文最新版在线| 久久精品国产亚洲夜色av网站| 2023国产精品久久久精品双| 99国产精品视频免费观看一公开| 亚洲一区成人| 日本中文字幕视频一区| 老鸭窝一区二区久久精品| 日本不良网站在线观看| 日韩中文字幕区一区有砖一区| 日本不卡一区二区三区| 欧美激情视频一区二区三区免费 | 国产精品亚洲人成在99www| 成人午夜网址| 日韩一级网站| 久久精品亚洲一区二区| 亚洲午夜电影| 日韩不卡免费视频| 福利欧美精品在线| 亚洲一区日韩在线| 红杏一区二区三区| 日韩专区一卡二卡| 精品三级久久久| 9国产精品视频| 日本在线观看不卡视频| 97人人精品| 中文一区二区| 欧美aaaaaa午夜精品| 亚洲欧洲一区二区天堂久久| 日本久久一区| 99成人在线视频| 日韩高清不卡在线| 久久国产电影| 美女视频黄 久久| 久久高清免费观看| 欧美日韩精品免费观看视欧美高清免费大片| 综合亚洲自拍| 欧洲亚洲一区二区三区| 国产精品一区二区三区av麻| 久久精品国产99久久| 欧美亚洲一级| 亚洲一区二区三区四区五区午夜| 国产精品久久久久9999高清| 国产亚洲综合精品| 久久久久久久久久久妇女| 日本h片久久| 亚洲在线网站| 99久久亚洲精品蜜臀| 精品亚洲a∨一区二区三区18| 午夜性色一区二区三区免费视频| 91精品啪在线观看国产18| 国产精品2区| 日韩精品免费视频一区二区三区| 精品一区在线| 日韩电影免费在线观看| 国产精品一区二区精品| 国产农村妇女精品一二区| 国产suv精品一区二区四区视频 | 激情婷婷欧美| 亚洲永久av| 久久99高清| 久久精品一区二区三区中文字幕| 伊人国产精品| 日韩专区欧美专区| 99日韩精品| 91精品推荐| 日韩在线视频精品| 国产在线观看91一区二区三区| 日本少妇精品亚洲第一区| 爽好多水快深点欧美视频| 超碰在线99| 国产精品成人一区二区不卡| 国产乱码精品一区二区三区四区| 日韩精品午夜视频| 日韩国产91| 国产日韩一区二区三区在线| 日韩福利视频导航| 日本午夜免费一区二区| 欧美日韩亚洲一区三区| 91精品国产自产观看在线| 91精品国产一区二区在线观看 | 亚洲自拍另类| 免播放器亚洲一区| 国产精品毛片| 亚洲综合丁香| 亚洲精品亚洲人成在线观看| 天堂俺去俺来也www久久婷婷| 亚洲一二av| 欧美日韩夜夜| 精品视频一区二区三区在线观看 | 日韩三级精品| 国产精品久久| 在线手机中文字幕| 一区二区三区四区在线看| 91精品高清| 亚洲少妇在线| 中文一区一区三区免费在线观 | 西西人体一区二区| 亚洲三区欧美一区国产二区| 少妇精品在线| 日韩精品国产精品| 国产福利资源一区| 欧美男人天堂| 999国产精品永久免费视频app| 免费黄色成人| 免播放器亚洲一区| 国产精品白浆| 日韩和的一区二在线| 9色精品在线| 国产欧美日韩亚洲一区二区三区| 国产伊人久久| 性欧美xxxx免费岛国不卡电影| 狠狠干综合网| 日本aⅴ亚洲精品中文乱码 | 久久亚洲二区| 国产精品美女午夜爽爽| 国产中文字幕一区二区三区| 久久国产成人午夜av影院宅| 亚洲视频二区| 久久精品欧洲| 亚洲一区二区三区高清| 国产精品亚洲综合在线观看| 日韩大片在线| 亚洲色图综合| 精品国产精品久久一区免费式| 久久在线免费| 国产日韩免费| 精品一区欧美| 国产精品二区影院| 91精品观看| 麻豆国产精品视频| 欧美在线资源| 久久中文字幕一区二区三区| 宅男在线一区| 免费视频一区二区三区在线观看| 欧美亚洲国产一区| 国产精品一区二区三区www| 欧美日韩国产高清电影| 国产欧美日韩影院| 在线视频免费在线观看一区二区| 国产精品羞羞答答在线观看| 狠狠操综合网| 精品国产午夜肉伦伦影院| 六月天综合网| 中文av在线全新| 国产日韩欧美三级| 亚洲大全视频| 亚洲天堂资源| 国产精品一区二区三区四区在线观看 | 99久久视频| 国产精品久久国产愉拍| 视频一区二区中文字幕| 国产粉嫩在线观看| 国产精品夜夜夜| 亚洲欧美久久久| 久久91导航| 国产精品1区| 日韩中文字幕一区二区高清99| 成人免费电影网址| 国产精品theporn| 日韩av一二三| 丝袜美腿成人在线| japanese国产精品| 神马午夜在线视频| 乱一区二区av| 青青国产精品| 爽爽淫人综合网网站| 久久亚洲成人| 中文字幕在线视频久| 久久国产精品免费一区二区三区| 中文一区一区三区免费在线观 | 国产精品www994| 国产日韩亚洲欧美精品| 亚洲精选av| 丝袜美腿亚洲色图| 中文日韩在线| 日韩一区二区免费看| 亚洲成a人片| 久久夜夜操妹子| 日韩国产欧美| 成人小电影网站| 精品久久久中文字幕| 美女视频黄免费的久久| 欧美成人aaa| 精品在线网站观看| 捆绑调教美女网站视频一区| 国产精品视频3p|