摘要:前言利用實(shí)現(xiàn)抓取微博評(píng)論數(shù)據(jù),廢話不多說(shuō)。讓我們愉快地開(kāi)始吧開(kāi)發(fā)工具版本相關(guān)模塊模塊模塊模塊模塊模塊以及一些自帶的模塊。環(huán)境搭建安裝并添加到環(huán)境變量,安裝需要的相關(guān)模塊即可。
利用Python實(shí)現(xiàn)抓取微博評(píng)論數(shù)據(jù),廢話不多說(shuō)。
讓我們愉快地開(kāi)始吧~
**Python版本:**3.6.4
相關(guān)模塊:
requests模塊;
re模塊;
pandas模塊;
lxml模塊;
random模塊;
以及一些Python自帶的模塊。
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
本文以爬取微博熱搜《霍尊手寫(xiě)道歉信》為例,講解如何爬取微博評(píng)論!
網(wǎng)頁(yè)地址
https://m.weibo.cn/detail/4669040301182509
網(wǎng)頁(yè)分析
微博評(píng)論是動(dòng)態(tài)加載的,進(jìn)入瀏覽器的開(kāi)發(fā)者工具后,在網(wǎng)頁(yè)上向下拉取會(huì)得到我們需要的數(shù)據(jù)包
得到真實(shí)URL
https://m.weibo.cn/comments/hotflow?id=4669040301182509&mid=4669040301182509&max_id_type=0https://m.weibo.cn/comments/hotflow?id=4669040301182509&mid=4669040301182509&max_id=3698934781006193&max_id_type=0
兩條URL區(qū)別很明顯,首條URL是沒(méi)有參數(shù)max_id的,第二條開(kāi)始max_id才出現(xiàn),而max_id其實(shí)是前一條數(shù)據(jù)包中的max_id
但有個(gè)需要注意的是參數(shù)max_id_type,它其實(shí)也是會(huì)變化的,所以我們需要從數(shù)據(jù)包中獲取max_id_type
代碼實(shí)現(xiàn)
import reimport requestsimport pandas as pdimport timeimport randomdf = pd.DataFrame()try: a = 1 while True: header = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36" } resposen = requests.get("https://m.weibo.cn/detail/4669040301182509", headers=header) # 微博爬取大概幾十頁(yè)會(huì)封賬號(hào)的,而通過(guò)不斷的更新cookies,會(huì)讓爬蟲(chóng)更持久點(diǎn)... cookie = [cookie.value for cookie in resposen.cookies] # 用列表推導(dǎo)式生成cookies部件 headers = { # 登錄后的cookie, SUB用登錄后的 "cookie": f"WEIBOCN_FROM={cookie[3]}; SUB=; _T_WM={cookie[4]}; MLOGIN={cookie[1]}; M_WEIBOCN_PARAMS={cookie[2]}; XSRF-TOKEN={cookie[0]}", "referer": "https://m.weibo.cn/detail/4669040301182509", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36" } if a == 1: url = "https://m.weibo.cn/comments/hotflow?id=4669040301182509&mid=4669040301182509&max_id_type=0" else: url = f"https://m.weibo.cn/comments/hotflow?id=4669040301182509&mid=4669040301182509&max_id={max_id}&max_id_type={max_id_type}" html = requests.get(url=url, headers=headers).json() data = html["data"] max_id = data["max_id"] # 獲取max_id和max_id_type返回給下一條url max_id_type = data["max_id_type"] for i in data["data"]: screen_name = i["user"]["screen_name"] i_d = i["user"]["id"] like_count = i["like_count"] # 點(diǎn)贊數(shù) created_at = i["created_at"] # 時(shí)間 text = re.sub(r"<[^>]*>", "", i["text"]) # 評(píng)論 print(text) data_json = pd.DataFrame({"screen_name": [screen_name], "i_d": [i_d], "like_count": [like_count], "created_at": [created_at],"text": [text]}) df = pd.concat([df, data_json]) time.sleep(random.uniform(2, 7)) a += 1except Exception as e: print(e)df.to_csv("微博.csv", encoding="utf-8", mode="a+", index=False)print(df.shape)
效果展示
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/122995.html
摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:所以說(shuō),我們所看到的微博頁(yè)面的真實(shí)數(shù)據(jù)并不是最原始的頁(yè)面返回的,而是后來(lái)執(zhí)行后再次向后臺(tái)發(fā)送了請(qǐng)求,拿到數(shù)據(jù)后再進(jìn)一步渲染出來(lái)的。結(jié)果提取仍然是拿微博為例,我們接下來(lái)用來(lái)模擬這些請(qǐng)求,把馬云發(fā)過(guò)的微博爬取下來(lái)。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---34、數(shù)據(jù)存儲(chǔ):非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):Redis下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖 ...
摘要:今天為大家整理了個(gè)爬蟲(chóng)項(xiàng)目。地址新浪微博爬蟲(chóng)主要爬取新浪微博用戶的個(gè)人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過(guò)多賬號(hào)登錄來(lái)防止新浪的反扒。涵蓋鏈家爬蟲(chóng)一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),。本文來(lái)源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲(chóng)軟件定制開(kāi)發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲(chóng)學(xué)習(xí)系列教程(來(lái)源于某博主:htt...
摘要:當(dāng)我們?cè)噲D從新浪微博抓取數(shù)據(jù)時(shí),我們會(huì)發(fā)現(xiàn)網(wǎng)頁(yè)上提示未登錄,無(wú)法查看其他用戶的信息。三模擬登錄下面將介紹使用獲取新浪微博,然后使用提交從而實(shí)現(xiàn)模擬登錄。 當(dāng)我們?cè)噲D從新浪微博抓取數(shù)據(jù)時(shí),我們會(huì)發(fā)現(xiàn)網(wǎng)頁(yè)上提示未登錄,無(wú)法查看其他用戶的信息。模擬登錄是定向爬蟲(chóng)制作中一個(gè)必須克服的問(wèn)題,只有這樣才能爬取到更多的內(nèi)容。 showImg(https://segmentfault.com/img/...
閱讀 823·2021-11-18 10:02
閱讀 2542·2021-11-11 16:54
閱讀 2765·2021-09-02 09:45
閱讀 663·2019-08-30 12:52
閱讀 2791·2019-08-29 14:04
閱讀 2757·2019-08-29 12:39
閱讀 460·2019-08-29 12:27
閱讀 1897·2019-08-26 13:23