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

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

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

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

前言:

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

這個項目總共分為兩步:

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

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

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

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

獲取所有帖子的鏈接:

搜索的范圍依然是以虎撲影視區(qū)為界限。虎撲影視區(qū)一天約5000個回帖,一月下來超過15萬回帖,作為樣本來說也不算小,有一定的參考價值。

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

1.獲取當前日期

2.獲取30天前的日期

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

1.獲取當前日期

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

2.獲取30天前的日期

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

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

在獲得開始日期與結(jié)束日期后,由于依然需要記錄每一天每個人的討論數(shù),根據(jù)這兩個日期生成兩個字典,分別為actor1_dict與actor2_dict。字典以日期為key,以當日討論數(shù)目作為value,便于每次新增查找記錄時更新對應的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.記錄從第一頁往后翻的所有發(fā)帖鏈接

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

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

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

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

比較發(fā)帖時間,如果小于30天前的日期,則獲取發(fā)帖鏈接結(jié)束,返回當前拿到的鏈接數(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://m.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)超過30天了,就直接返回return post_list return post_list

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

從回帖中搜索演員名字:

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

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

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

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

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

去除的規(guī)則其實并不重要,因為每個論壇都有自己的格式,只要能搞清楚源代碼中是怎么寫的,剩下的操作就可以自己根據(jù)規(guī)則進行。

每個回帖格式大致如圖4,

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

用對應的正則表達式再去匹配,找到每個帖子每一個回帖的內(nèi)容,在內(nèi)容中搜索演員名字,即一開始的actor_1與actor_2,如果搜到,則在對應回帖日期下+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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美一级| 亚洲婷婷丁香| 亚洲精品大全| 午夜亚洲福利| 中文不卡在线| 国产情侣久久| 97精品国产一区二区三区| 久久久男人天堂| 国产精品97| 久久国产麻豆精品| 国产69精品久久| 亚洲电影在线| 日韩精品成人| 久久久一二三| 爽好久久久欧美精品| 日韩免费精品| 久久精品女人| 免费日韩一区二区| 日韩成人av影视| 久久av综合| 免费精品国产的网站免费观看| 一区二区91| 亚洲啊v在线| 日韩欧美久久| 91精品国产自产在线观看永久∴| 一区二区三区四区日韩| 久草免费在线视频| 亚洲精品黄色| 午夜精品成人av| 国产免费av一区二区三区| 日韩精品一区二区三区免费观看| 日本91福利区| 婷婷亚洲综合| 久久精品亚洲欧美日韩精品中文字幕| 国产精品普通话对白| 国产精品久久久久77777丨| 激情91久久| 欧美sss在线视频| 久久这里只有| 日本亚洲最大的色成网站www| 亚洲婷婷在线| 日韩电影免费在线观看| 亚洲视频国产精品| 日韩视频二区| 欧美aⅴ一区二区三区视频| 日韩久久视频| 亚洲资源网站| 免费成人网www| 精品国产欧美| 欧美不卡高清一区二区三区| 久久国产精品色av免费看| 91精品电影| 97精品国产福利一区二区三区| 国产日产精品_国产精品毛片| 欧美丝袜一区| 国产精品亚洲一区二区在线观看| 亚洲国产成人精品女人| 精品亚洲自拍| 青青国产精品| 免播放器亚洲| 91九色精品国产一区二区| 高清一区二区三区av| 日本不卡一二三区黄网| 尹人成人综合网| 国产成人免费| 69堂精品视频在线播放| 99热精品在线| 高潮一区二区| 日韩1区2区日韩1区2区| 日韩影院精彩在线| 欧美精品一卡| 欧美高清一区| 婷婷成人在线| 久久久人人人| 亚洲伦乱视频| 日韩欧美另类中文字幕| 亚洲欧美成人综合| 国产一区91| 在线亚洲一区| 欧美中文日韩| 成人啊v在线| 欧洲精品一区二区三区| 日韩大片在线| 久久美女精品| 亚洲欧洲一区二区天堂久久| 国产麻豆综合| 亚洲91在线| 日本不卡一区二区| 日韩高清不卡在线| 国产图片一区| 精品视频免费| 日韩久久精品网| 激情偷拍久久| 亚洲欧美日韩一区在线观看| 亚洲免费专区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲美女91| 日本午夜免费一区二区| 久久国产日韩欧美精品| 国产精久久久| 久久精品导航| 9久re热视频在线精品| 亚洲免费观看| 国产精品久久久久久久久久齐齐| 日韩大片在线| 亚洲精品日本| 国产日韩精品视频一区二区三区| 亚洲一区资源| 日韩国产精品久久久久久亚洲| 久久中文字幕一区二区三区| 国产一区二区视频在线看| 免费av一区二区三区四区| 日韩av成人高清| 久久美女性网| 国产精品videossex久久发布| 人人精品亚洲| 国产欧美日韩一区二区三区在线| 在线天堂资源www在线污| 自拍自偷一区二区三区| 国产美女高潮在线| 一区二区精品| 精品日韩毛片| sm久久捆绑调教精品一区| 亚洲精品日本| 亚洲国内欧美| 欧美在线不卡| 国产亚洲永久域名| 四虎8848精品成人免费网站| 亚洲精品自拍| 日韩国产综合| 91精品啪在线观看国产爱臀| 免费视频国产一区| 国产不卡人人| 精品国产乱码| 亚洲欧美一级| 丝袜美腿亚洲一区| 欧美在线资源| 久久精品影视| 亚洲播播91| 日韩国产一区二区| 亚洲理论在线| 亚洲手机视频| 91亚洲国产高清| 麻豆91在线播放| 欧美视频久久| 日韩av一区二| 视频一区视频二区中文字幕| 99精品在线观看| 亚洲天堂资源| 日本黄色精品| 岛国精品一区| 精品国产鲁一鲁****| 欧美片网站免费| 午夜天堂精品久久久久| 群体交乱之放荡娇妻一区二区| 国产乱码精品一区二区三区四区 | 青青草伊人久久| 久久精品凹凸全集| 青草国产精品| 麻豆精品在线观看| 精品国产一区二| 久久人人97超碰国产公开结果| 一区二区三区视频免费观看| 伊人成人网在线看| 日韩欧美中文字幕电影| 国产精品日韩精品中文字幕| 高清日韩中文字幕| 亚洲天堂av影院| 蜜臀久久99精品久久一区二区| 美女国产一区| 免费看一区二区三区| 国产精品hd| 欧美日韩在线播放视频| 美国三级日本三级久久99| 国产精品久久免费视频| 久久精品1区| 国产一区 二区| 欧美一区久久久| 日韩在线网址| 国产资源在线观看入口av| 中文精品在线| 三上亚洲一区二区| 中文字幕系列一区| 日韩精品一页| 高清av一区| 日韩高清一区在线 | 亚洲深夜av| 精品欧美日韩精品| 免费精品视频| 日韩av免费| 美女视频黄久久| 亚洲乱码一区| 免费观看久久av| 精品美女在线视频| 最近国产精品视频| 香蕉视频亚洲一级| 天堂av一区| 久久亚洲美女| 亚洲一区二区三区中文字幕在线观看| 午夜一区在线|