二十五. 異步加載實(shí)戰(zhàn) - 簡(jiǎn)書(shū)網(wǎng)用戶動(dòng)態(tài)信息

爬取網(wǎng)址:http://www.reibang.com/u/9104ebf5e177
爬取信息:用戶動(dòng)態(tài)類(lèi)型怪嫌,時(shí)間信息
爬取方式:使用bs4解析。
存儲(chǔ)方式:打印出來(lái)

①爬取簡(jiǎn)書(shū)羅羅攀的用戶動(dòng)態(tài)信息:


image.png

②從打開(kāi)URL到選擇單擊“動(dòng)態(tài)”鏈接,網(wǎng)頁(yè)URL沒(méi)有發(fā)生該表,證明網(wǎng)頁(yè)采用了異步加載技術(shù)。
利用Chrome的Network選項(xiàng)卡巴帮,選擇XHR項(xiàng),可以看到用戶加載的動(dòng)態(tài)文件虐秋。


image.png

③從Response項(xiàng)中可以看到每個(gè)LI標(biāo)簽就包含了一個(gè)用戶動(dòng)態(tài)內(nèi)容榕茧,例如“關(guān)注了作者”,“喜歡了文章 ”客给,"發(fā)表了評(píng)論"等用押。經(jīng)過(guò)確認(rèn),網(wǎng)址可以精簡(jiǎn)成:http://www.reibang.com/users/9104ebf5e177/timeline

image.png

④通過(guò)下拉瀏覽發(fā)現(xiàn)網(wǎng)頁(yè)采用Ajax進(jìn)行分頁(yè)處理:


image.png

⑤通過(guò)手工刪除URL中的max_id字段靶剑,發(fā)現(xiàn)不能返回正常加載的內(nèi)容蜻拨,僅停留在首頁(yè)動(dòng)態(tài)當(dāng)中池充。
而且每個(gè)頁(yè)面的max_id都不同,數(shù)字規(guī)律也不是很明顯缎讼,所以接下來(lái)構(gòu)造URL的重點(diǎn)在于獲取max_id的數(shù)字收夸。


image.png

⑥經(jīng)分析,原來(lái)數(shù)字的規(guī)律是這樣子的血崭,如下圖所示:
第一頁(yè)最后一個(gè)li標(biāo)簽中的id數(shù)字 = 第二頁(yè)URL中的max數(shù)字 + 1


image.png

⑦由于Response返回的是XML文檔卧惜,所以使用bs4的Lxml解析方法進(jìn)行數(shù)據(jù)抓取工作。
抓取數(shù)據(jù)為:data-type和data-datetime夹纫。


image.png

⑧最后把結(jié)果打印出來(lái)咽瓷。

代碼如下:

import requests
from bs4 import BeautifulSoup

headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3294.6 Safari/537.36'}

##獲取data_type和datetime信息。
def get_info(url):   
    r = requests.get(url,headers = headers)
    soup = BeautifulSoup(r.text,"lxml")
    infos = soup.select("ul.note-list li")
    for info in infos:
        data_type = info.select("div.author span")[0].get("data-type")
        datetime = info.select("div.author span")[0].get("data-datetime")
        print(data_type,datetime)   

##獲取max_id信息
def get_id(url):
    r = requests.get(url,headers = headers)
    soup = BeautifulSoup(r.text,"lxml")
    max_id = soup.select("ul.note-list li")[-1].get("id").split("-")[1]
    return int(max_id)

if __name__ == "__main__":
    start_url = "http://www.reibang.com/users/9104ebf5e177/timeline"
    get_info(start_url)
    max_id = get_id(start_url) + 1
    
    #利用循環(huán)代替遞歸函數(shù)舰讹。
    for page in range(2,11):        
        next_url = "http://www.reibang.com/users/9104ebf5e177/timeline?max_id={}&page={}".format(max_id, page)
        get_info(next_url)
        max_id = get_id(next_url) + 1

部分結(jié)果為:

like_user 2018-02-20T13:21:20+08:00
like_note 2018-02-20T12:45:47+08:00
comment_note 2018-02-17T09:31:48+08:00
like_note 2018-02-16T20:26:10+08:00
like_note 2018-02-15T16:13:39+08:00
...
comment_note 2017-08-22T17:50:54+08:00
like_note 2017-08-22T17:50:11+08:00
like_note 2017-08-22T16:40:18+08:00
like_user 2017-08-22T16:39:54+08:00
comment_note 2017-08-22T16:38:54+08:00
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茅姜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子月匣,更是在濱河造成了極大的恐慌钻洒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锄开,死亡現(xiàn)場(chǎng)離奇詭異航唆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)院刁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粪狼,“玉大人退腥,你說(shuō)我怎么就攤上這事≡匍” “怎么了狡刘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)困鸥。 經(jīng)常有香客問(wèn)我嗅蔬,道長(zhǎng),這世上最難降的妖魔是什么疾就? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任澜术,我火速辦了婚禮,結(jié)果婚禮上猬腰,老公的妹妹穿的比我還像新娘鸟废。我一直安慰自己,他們只是感情好姑荷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布盒延。 她就那樣靜靜地躺著缩擂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪添寺。 梳的紋絲不亂的頭發(fā)上胯盯,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音计露,去河邊找鬼博脑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛薄坏,可吹牛的內(nèi)容都是我干的趋厉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼胶坠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼君账!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起沈善,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乡数,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后闻牡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體净赴,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年罩润,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玖翅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡割以,死狀恐怖金度,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情严沥,我是刑警寧澤猜极,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站消玄,受9級(jí)特大地震影響跟伏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翩瓜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一受扳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奥溺,春花似錦辞色、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)层亿。三九已至,卻和暖如春立美,著一層夾襖步出監(jiān)牢的瞬間匿又,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工建蹄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碌更,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓洞慎,卻偏偏與公主長(zhǎng)得像痛单,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劲腿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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