微博熱搜爬取(三)

對于上一篇的微博OCR提取熱搜的方法顯得十分笨拙脖律,本篇用scrapy干凈利落地解決了問題厦坛。

1. 寫爬蟲爬取熱搜網(wǎng)頁內(nèi)容

微博熱搜頁http://s.weibo.com/top/summary是不需要登陸就可以獲得的望门,但是文本不在html網(wǎng)頁框架中菇晃,而是利用一個(gè)連接新的get得到的html蕉毯,里面包含了內(nèi)容的編碼蹦疑。scrapy新建三連省略了西雀,列出爬蟲主體:

# -*- coding: utf-8 -*-

import scrapy

class WeiboSpiderSpider(scrapy.Spider):

? ? name = 'weibo_spider'

? ? allowed_domains = ['weibo.com']

? ? start_urls = ['http://s.weibo.com/ajax/jsonp/gettopsug?uid=&ref=PC_topsug&url=http://s.weibo.com/top/summary&Mozilla=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0&_cb=STK_15287494731273']

? ? def parse(self, response):

? ? ? ? f=open("weibo.txt","w")

? ? ? ? f.write(response.body)

十分簡潔,下載好的網(wǎng)頁內(nèi)容包含在weibo.txt中必尼。


圖一 爬取網(wǎng)頁文本

2. 寫主函數(shù)獲得數(shù)據(jù)內(nèi)容并寫入數(shù)據(jù)庫

思路也一目了然蒋搜,用正則提取出note\num的內(nèi)容,然后將內(nèi)容一并寫入數(shù)據(jù)庫中:

# -*- coding=utf-8-*-

import re

import sqlite3

import time

import scrapy

import os

# 執(zhí)行爬蟲

os.system('scrapy crawl weibo_spider')

# 解析文本并保存文本

f=open("weibo.txt",'r')

contents=f.read()

f.close()

item_contents=re.findall('[\d\w\\\\]+(?=","word")',contents)

nums=re.findall('"num":"\d+"',contents)

mycontent=[]

for item in (item_contents):

? ? content=item.decode('unicode_escape')

? ? mycontent.append(content)? ?

? ? print(content)


mynum=[]

for num in nums:

? ? newnum=re.search('\d+',num).group()

? ? newnum=int(newnum)

? ? mynum.append(newnum)

? ? print(newnum)

# 寫入數(shù)據(jù)庫

cx = sqlite3.connect("E:\ATang\MyDatabase\Weibo.db")

print 'Opened database successfully'

mytime = time.strftime('%Y%m%d',time.localtime(time.time()))

shumu=len(mycontent)

for i in range(0,shumu):

? ? sql = "insert into WeiboRedian(date,note,num)values('%s','%s',%d)" % (mytime,mycontent[i],mynum[i])

? ? cx.execute(sql)

? ? cx.commit()

cx.close()

這個(gè)腳本也十分簡潔判莉,可以看出scrapy在讀取規(guī)則的網(wǎng)絡(luò)數(shù)據(jù)比之前用到的OCR方法好太多了豆挽。關(guān)于腳本內(nèi)容的細(xì)節(jié),可以參考scrapy學(xué)習(xí)筆記中的內(nèi)容券盅。但是前述方法也并非一無是處帮哈,在正則表達(dá)式失效的場合,文本識別技術(shù)或者機(jī)器分類就變得極為重要了锰镀。

圖二 寫入數(shù)據(jù)庫的熱搜數(shù)據(jù)

如果在主函數(shù)加入時(shí)間循環(huán)娘侍,或者改造成exe運(yùn)行程序用windows系統(tǒng)每天調(diào)用的話咖刃,可以做到讓他每天都能爬取到微博熱點(diǎn)信息并匯成數(shù)據(jù)表,以供語義分析和詞云的制作憾筏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚎杨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子氧腰,更是在濱河造成了極大的恐慌枫浙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件古拴,死亡現(xiàn)場離奇詭異箩帚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)黄痪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門紧帕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桅打,你說我怎么就攤上這事是嗜。” “怎么了油额?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵叠纷,是天一觀的道長。 經(jīng)常有香客問我潦嘶,道長涩嚣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任掂僵,我火速辦了婚禮航厚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锰蓬。我一直安慰自己幔睬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布芹扭。 她就那樣靜靜地躺著麻顶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舱卡。 梳的紋絲不亂的頭發(fā)上辅肾,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音轮锥,去河邊找鬼矫钓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的新娜。 我是一名探鬼主播赵辕,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼概龄!你這毒婦竟也來了还惠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤私杜,失蹤者是張志新(化名)和其女友劉穎吸重,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歪今,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年颜矿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寄猩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骑疆,死狀恐怖田篇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箍铭,我是刑警寧澤泊柬,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站诈火,受9級特大地震影響兽赁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冷守,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一刀崖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拍摇,春花似錦亮钦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至混卵,卻和暖如春映穗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淮菠。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工男公, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓枢赔,卻偏偏與公主長得像澄阳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子踏拜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,030評論 0 2
  • 這兩天摸索了下scrapy碎赢,剛看文檔的時(shí)候覺得有點(diǎn)生無可戀,scrapy框架個(gè)人還是覺得比較難懂的速梗,需要學(xué)習(xí)的地方...
    Treehl閱讀 5,633評論 7 10
  • 我們常常說 要珍惜現(xiàn)在 要活在當(dāng)下 那么 請你想一想 你又有多少時(shí)間去做去努力肮塞? 我敬佩那些懷揣夢想并為之努力拼搏...
    是否我就這樣過我的一生閱讀 382評論 1 2
  • 這是一個(gè)可以很淺的話題,也是一個(gè)很深的話題姻锁。為什么這么說枕赵?因?yàn)榻嵌鹊牟煌瑫屛覀冇胁煌恼J(rèn)識。對于一個(gè)剛?cè)肷鐣?..
    小雙灬閱讀 300評論 0 1
  • 1.Dispatch Group 在追加到 Dispatch Queue 中的多個(gè)任務(wù)處理完畢之后想執(zhí)行結(jié)束處理位隶,...
    sudhengshi閱讀 142評論 0 0