Python新浪微博爬蟲(chóng)-2 爬取評(píng)論用戶的信息

這篇文章是Python爬蟲(chóng)的第二篇篙挽,目標(biāo)是新浪微博的評(píng)論人的性別,地區(qū)镊靴,等信息铣卡,寫的不好的地方請(qǐng)指正。


先來(lái)分析一下數(shù)據(jù)的位置偏竟。

個(gè)人資料的網(wǎng)址有兩種煮落,如果用戶沒(méi)有設(shè)置個(gè)性域名,網(wǎng)址即為圖1踊谋,微博默認(rèn)的ID(weibo.cn/u/**********)蝉仇。否則為圖二(weibo.cn/purdence520)。因?yàn)槲覀冎矮@取的到的信息殖蚕,可能為域名或id轿衔,所以這里需要判斷,再獲取信息頁(yè)睦疫。


再來(lái)看看源碼害驹,信息都在class="c"div的第五個(gè)子標(biāo)簽內(nèi)(0索引開(kāi)始)


代碼

def get_page(self, domain, num):
        url = 'https://weibo.cn/{}/info'.format(domain)
        print(url)
        try:
            req = requests.get(url, headers=self.header, timeout=5,
                               cookies=self.cookie[2],)
            soup = BeautifulSoup(req.text, 'lxml')
            if req.status_code == 200:
                return soup
            else:
                print(req.status_code)
                url = 'https://weibo.cn/{}'.format(domain)
                req = requests.get(url, timeout=5,
                                   cookies=self.cookie[self.cg_id],
                                   headers=self.header)
                soup = BeautifulSoup(req.text, 'lxml')
                domain = re.compile(r'/(\d+)/info').\
                    findall(str(soup))[0]
                return self.get_page(domain, num)
        except Exception as e:
            raise(e)

此方法用于獲取信息頁(yè),需判斷id頁(yè)還是個(gè)性域名頁(yè)蛤育。domain參數(shù)是id/域名宛官,num參數(shù)是存到數(shù)據(jù)庫(kù)里的自增列葫松,用于定位。如果以id/info的網(wǎng)址可以獲取到信息底洗,則返回獲取到的頁(yè)面腋么。否則用域名網(wǎng)站獲取最后返回一個(gè)信息頁(yè)面。

個(gè)性域名錯(cuò)誤網(wǎng)址亥揖,頁(yè)面不存在党晋。
從個(gè)性欲名頁(yè)面爬到ID

用正則表達(dá)式匹配信息,把沒(méi)有填生日的信息設(shè)為none徐块,用tools包操作數(shù)據(jù)庫(kù)未玻。

def get_sab(self, q):
    while True:
        num = q.get()
        self.user_domain = tools.s_domain(num)
        soup = self.get_page(self.user_domain, num)
        try:
            self.user_sex = re.findall(r'性別:(.*?)<br', str(soup))[0]
            self.user_area = re.findall(r'地區(qū):(.*?)<br', str(soup))[0]
            self.user_birth = re.findall(r'生日:(.*?)<br', str(soup))[0]
        except Exception as e:
            self.user_birth = 'none'
        print(mp.current_process().name, num, self.user_sex,
              self.user_area, self.user_birth)
        tools.i_sab((self.user_sex, self.user_area, self.user_birth,
                     num))
        sleep(randint(1, 3))
用Queue來(lái)生成數(shù)據(jù)庫(kù)自增num,獲取數(shù)據(jù)庫(kù)中每一個(gè)domain
    def set_num(self, q):
        global num

        while True:
            q.put(num)
            print(num, 'put')
            num += 1

GitHub開(kāi)源地址:https://github.com/matianhe/crawler

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胡控,一起剝皮案震驚了整個(gè)濱河市扳剿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昼激,老刑警劉巖庇绽,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異橙困,居然都是意外死亡瞧掺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門凡傅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辟狈,“玉大人,你說(shuō)我怎么就攤上這事夏跷『咦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵槽华,是天一觀的道長(zhǎng)壹蔓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)猫态,這世上最難降的妖魔是什么佣蓉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮亲雪,結(jié)果婚禮上勇凭,老公的妹妹穿的比我還像新娘。我一直安慰自己匆光,他們只是感情好套像,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著终息,像睡著了一般夺巩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上周崭,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天柳譬,我揣著相機(jī)與錄音,去河邊找鬼续镇。 笑死美澳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摸航。 我是一名探鬼主播制跟,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酱虎!你這毒婦竟也來(lái)了雨膨?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤读串,失蹤者是張志新(化名)和其女友劉穎聊记,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體恢暖,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡排监,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杰捂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舆床。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嫁佳,靈堂內(nèi)的尸體忽然破棺而出峭弟,到底是詐尸還是另有隱情,我是刑警寧澤脱拼,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布瞒瘸,位于F島的核電站,受9級(jí)特大地震影響熄浓,放射性物質(zhì)發(fā)生泄漏情臭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一赌蔑、第九天 我趴在偏房一處隱蔽的房頂上張望俯在。 院中可真熱鬧,春花似錦娃惯、人聲如沸跷乐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)愕提。三九已至馒稍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浅侨,已是汗流浹背纽谒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留如输,地道東北人鼓黔。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像不见,于是被迫代替她去往敵國(guó)和親澳化。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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