日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 爬虫 微博 github_GitHub - Joria0414/weiboSpider: 新浪微博爬虫,用python爬取新浪微博数据...

發(fā)布時(shí)間:2023/12/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 爬虫 微博 github_GitHub - Joria0414/weiboSpider: 新浪微博爬虫,用python爬取新浪微博数据... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Weibo Spider

本程序可以連續(xù)爬取一個(gè)或多個(gè)新浪微博用戶(如胡歌、迪麗熱巴、郭碧婷)的數(shù)據(jù),并將結(jié)果信息寫入文件或數(shù)據(jù)庫(kù)。寫入信息幾乎包括用戶微博的所有數(shù)據(jù),包括用戶信息和微博信息兩大類。因?yàn)閮?nèi)容太多,這里不再贅述,詳細(xì)內(nèi)容見獲取到的字段。如果只需要用戶信息,可以通過設(shè)置實(shí)現(xiàn)只爬取微博用戶信息的功能。本程序需設(shè)置cookie來(lái)獲取微博訪問權(quán)限,后面會(huì)講解如何獲取cookie。如果不想設(shè)置cookie,可以使用免cookie版,二者功能類似。

具體的寫入文件類型如下:

寫入txt文件(默認(rèn))

寫入csv文件(默認(rèn))

寫入json文件(可選)

寫入MySQL數(shù)據(jù)庫(kù)(可選)

寫入MongoDB數(shù)據(jù)庫(kù)(可選)

寫入SQLite數(shù)據(jù)庫(kù)(可選)

下載用戶原創(chuàng)微博中的原始圖片(可選)

下載用戶轉(zhuǎn)發(fā)微博中的原始圖片(免cookie版特有)

下載用戶原創(chuàng)微博中的視頻(可選)

下載用戶轉(zhuǎn)發(fā)微博中的視頻(免cookie版特有)

下載用戶原創(chuàng)微博Live Photo中的視頻(免cookie版特有)

下載用戶轉(zhuǎn)發(fā)微博Live Photo中的視頻(免cookie版特有)

內(nèi)容列表

獲取到的字段

本部分為爬取到的字段信息說(shuō)明,為了與免cookie版區(qū)分,下面將兩者爬取到的信息都列出來(lái)。如果是免cookie版所特有的信息,會(huì)有免cookie標(biāo)注,沒有標(biāo)注的為二者共有的信息。

用戶信息

用戶id:微博用戶id,如"1669879400",其實(shí)這個(gè)字段本來(lái)就是已知字段

昵稱:用戶昵稱,如"Dear-迪麗熱巴"

性別:微博用戶性別

生日:用戶出生日期

所在地:用戶所在地

學(xué)習(xí)經(jīng)歷:用戶上學(xué)時(shí)學(xué)校的名字和時(shí)間

工作經(jīng)歷:用戶所屬公司名字和時(shí)間

陽(yáng)光信用(免cookie版):用戶的陽(yáng)光信用

微博注冊(cè)時(shí)間(免cookie版):用戶微博注冊(cè)日期

微博數(shù):用戶的全部微博數(shù)(轉(zhuǎn)發(fā)微博+原創(chuàng)微博)

關(guān)注數(shù):用戶關(guān)注的微博數(shù)量

粉絲數(shù):用戶的粉絲數(shù)

簡(jiǎn)介:用戶簡(jiǎn)介

主頁(yè)地址(免cookie版):微博移動(dòng)版主頁(yè)url

頭像url(免cookie版):用戶頭像url

高清頭像url(免cookie版):用戶高清頭像url

微博等級(jí)(免cookie版):用戶微博等級(jí)

會(huì)員等級(jí)(免cookie版):微博會(huì)員用戶等級(jí),普通用戶該等級(jí)為0

是否認(rèn)證(免cookie版):用戶是否認(rèn)證,為布爾類型

認(rèn)證類型(免cookie版):用戶認(rèn)證類型,如個(gè)人認(rèn)證、企業(yè)認(rèn)證、政府認(rèn)證等

認(rèn)證信息:為認(rèn)證用戶特有,用戶信息欄顯示的認(rèn)證信息

微博信息

微博id:微博唯一標(biāo)志

微博內(nèi)容:微博正文

頭條文章url:微博中頭條文章的url,若微博中不存在頭條文章,則值為''

原始圖片url:原創(chuàng)微博圖片和轉(zhuǎn)發(fā)微博轉(zhuǎn)發(fā)理由中圖片的url,若某條微博存在多張圖片,每個(gè)url以英文逗號(hào)分隔,若沒有圖片則值為"無(wú)"

視頻url: 微博中的視頻url,若微博中沒有視頻,則值為"無(wú)"

微博發(fā)布位置:位置微博中的發(fā)布位置

微博發(fā)布時(shí)間:微博發(fā)布時(shí)的時(shí)間,精確到分

點(diǎn)贊數(shù):微博被贊的數(shù)量

轉(zhuǎn)發(fā)數(shù):微博被轉(zhuǎn)發(fā)的數(shù)量

評(píng)論數(shù):微博被評(píng)論的數(shù)量

微博發(fā)布工具:微博的發(fā)布工具,如iPhone客戶端、HUAWEI Mate 20 Pro等

結(jié)果文件:保存在當(dāng)前目錄weibo文件夾下以用戶昵稱為名的文件夾里,名字為"user_id.csv"和"user_id.txt"的形式

微博圖片:原創(chuàng)微博中的圖片和轉(zhuǎn)發(fā)微博轉(zhuǎn)發(fā)理由中的圖片,保存在以用戶昵稱為名的文件夾下的img文件夾里

微博視頻:原創(chuàng)微博中的視頻,保存在以用戶昵稱為名的文件夾下的video文件夾里

微博bid(免cookie版):為免cookie版所特有,與本程序中的微博id是同一個(gè)值

話題(免cookie版):微博話題,即兩個(gè)#中的內(nèi)容,若存在多個(gè)話題,每個(gè)url以英文逗號(hào)分隔,若沒有則值為''

@用戶(免cookie版):微博@的用戶,若存在多個(gè)@用戶,每個(gè)url以英文逗號(hào)分隔,若沒有則值為''

原始微博(免cookie版):為轉(zhuǎn)發(fā)微博所特有,是轉(zhuǎn)發(fā)微博中那條被轉(zhuǎn)發(fā)的微博,存儲(chǔ)為字典形式,包含了上述微博信息中的所有內(nèi)容,如微博id、微博內(nèi)容等等

示例

如果想要知道程序的具體運(yùn)行結(jié)果,可以查看示例文檔,該文檔介紹了爬取迪麗熱巴微博的例子,并附有部分結(jié)果文件截圖。

運(yùn)行環(huán)境

開發(fā)語(yǔ)言:python2/python3

系統(tǒng): Windows/Linux/macOS

使用說(shuō)明

0.版本

本程序有兩個(gè)版本,你現(xiàn)在看到的是python3版,另一個(gè)是python2版,python2版位于python2分支。目前主力開發(fā)python3版,包括新功能開發(fā)和bug修復(fù);python2版僅支持bug修復(fù)。推薦python3用戶使用當(dāng)前版本,推薦python2用戶使用python2版,本使用說(shuō)明是python3版的使用說(shuō)明。

1.安裝程序

本程序提供兩種安裝方式,一種是源碼安裝,另一種是pip安裝,二者功能完全相同。如果你需要修改源碼,建議使用第一種方式,否則選哪種安裝方式都可以。

源碼安裝

$ git clone https://github.com/dataabc/weiboSpider.git

$ cd weiboSpider

$ pip install -r requirements.txt

pip安裝

$ python3 -m pip install weibo-spider

2.程序設(shè)置

要了解程序設(shè)置,請(qǐng)查看程序設(shè)置文檔。

3.運(yùn)行程序

源碼安裝的用戶可以在weiboSpider目錄運(yùn)行如下命令,pip安裝的用戶可以在任意有寫權(quán)限的目錄運(yùn)行如下命令

$ python3 -m weibo_spider

第一次執(zhí)行,會(huì)自動(dòng)在當(dāng)前目錄創(chuàng)建config.json配置文件,配置好后執(zhí)行同樣的命令就可以獲取微博了。

如果你已經(jīng)有config.json文件了,也可以通過config_path參數(shù)配置config.json路徑,運(yùn)行程序,命令行如下:

$ python3 -m weibo_spider --config_path="config.json"

如果你想指定文件(csv、txt、json、圖片、視頻)保存路徑,可以通過output_dir參數(shù)設(shè)定。假如你想把文件保存到/home/weibo/目錄,可以運(yùn)行如下命令:

$ python3 -m weibo_spider --output_dir="/home/weibo/"

如果你想通過命令行輸入user_id,可以使用參數(shù)u,可以輸入一個(gè)或多個(gè)user_id,每個(gè)user_id以英文逗號(hào)分開,如果這些user_id中有重復(fù)的user_id,程序會(huì)自動(dòng)去重。命令行如下:

$ python3 -m weibo_spider --u="1669879400,1223178222"

程序會(huì)獲取user_id分別為1669879400和1223178222的微博用戶的微博,后面會(huì)講如何獲取user_id。該方式的所有user_id使用config.json中的since_date和end_date設(shè)置,通過修改它們的值可以控制爬取的時(shí)間范圍。若config.json中的user_id_list是文件路徑,每個(gè)命令行中的user_id都會(huì)自動(dòng)保存到該文件內(nèi),且自動(dòng)更新since_date;若不是路徑,user_id會(huì)保存在當(dāng)前目錄的user_id_list.txt內(nèi),且自動(dòng)更新since_date,若當(dāng)前目錄下不存在user_id_list.txt,程序會(huì)自動(dòng)創(chuàng)建它。

個(gè)性化定制程序(可選)

本部分為可選部分,如果不需要個(gè)性化定制程序或添加新功能,可以忽略此部分。

本程序主體代碼位于weibo_spider.py文件,程序主體是一個(gè) Spider 類,上述所有功能都是通過在main函數(shù)調(diào)用 Spider 類實(shí)現(xiàn)的,默認(rèn)的調(diào)用代碼如下:

config = get_config()

wb = Spider(config)

wb.start() # 爬取微博信息

用戶可以按照自己的需求調(diào)用或修改 Spider 類。通過執(zhí)行本程序,我們可以得到很多信息。

點(diǎn)擊查看詳情

wb.user['nickname']:用戶昵稱;

wb.user['gender']:用戶性別;

wb.user['location']:用戶所在地;

wb.user['birthday']:用戶出生日期;

wb.user['description']:用戶簡(jiǎn)介;

wb.user['verified_reason']:用戶認(rèn)證;

wb.user['talent']:用戶標(biāo)簽;

wb.user['education']:用戶學(xué)習(xí)經(jīng)歷;

wb.user['work']:用戶工作經(jīng)歷;

wb.user['weibo_num']:微博數(shù);

wb.user['following']:關(guān)注數(shù);

wb.user['followers']:粉絲數(shù);

wb.weibo:除不包含上述信息外,wb.weibo包含爬取到的所有微博信息,如微博id、微博正文、原始圖片url、發(fā)布位置、發(fā)布時(shí)間、發(fā)布工具、點(diǎn)贊數(shù)、轉(zhuǎn)發(fā)數(shù)、評(píng)論數(shù)等。如果爬的是全部微博(原創(chuàng)+轉(zhuǎn)發(fā)),除上述信息之外,還包含被轉(zhuǎn)發(fā)微博原始圖片url、是否為原創(chuàng)微博等。wb.weibo是一個(gè)列表,包含了爬取的所有微博信息。wb.weibo[0]為爬取的第一條微博,wb.weibo[1]為爬取的第二條微博,以此類推。當(dāng)filter=1時(shí),wb.weibo[0]為爬取的第一條原創(chuàng)微博,以此類推。wb.weibo[0]['id']為第一條微博的id,wb.weibo[0]['content']為第一條微博的正文,wb.weibo[0]['publish_time']為第一條微博的發(fā)布時(shí)間,還有其它很多信息不在贅述,大家可以點(diǎn)擊下面的"詳情"查看具體用法。

詳情

若目標(biāo)微博用戶存在微博,則:

id:存儲(chǔ)微博id。如wb.weibo[0]['id']為最新一條微博的id;

content:存儲(chǔ)微博正文。如wb.weibo[0]['content']為最新一條微博的正文;

article_url:存儲(chǔ)微博中頭條文章的url。如wb.weibo[0]['article_url']為最新一條微博的頭條文章url,若微博中不存在頭條文章,則值為'';

original_pictures:存儲(chǔ)原創(chuàng)微博的原始圖片url和轉(zhuǎn)發(fā)微博轉(zhuǎn)發(fā)理由中的圖片url。如wb.weibo[0]['original_pictures']為最新一條微博的原始圖片url,若該條微博有多張圖片,則存儲(chǔ)多個(gè)url,以英文逗號(hào)分割;若該微博沒有圖片,則值為"無(wú)";

retweet_pictures:存儲(chǔ)被轉(zhuǎn)發(fā)微博中的原始圖片url。當(dāng)最新微博為原創(chuàng)微博或者為沒有圖片的轉(zhuǎn)發(fā)微博時(shí),則值為"無(wú)",否則為被轉(zhuǎn)發(fā)微博的圖片url。若有多張圖片,則存儲(chǔ)多個(gè)url,以英文逗號(hào)分割;

publish_place:存儲(chǔ)微博的發(fā)布位置。如wb.weibo[0]['publish_place']為最新一條微博的發(fā)布位置,如果該條微博沒有位置信息,則值為"無(wú)";

publish_time:存儲(chǔ)微博的發(fā)布時(shí)間。如wb.weibo[0]['publish_time']為最新一條微博的發(fā)布時(shí)間;

up_num:存儲(chǔ)微博獲得的點(diǎn)贊數(shù)。如wb.weibo[0]['up_num']為最新一條微博獲得的點(diǎn)贊數(shù);

retweet_num:存儲(chǔ)微博獲得的轉(zhuǎn)發(fā)數(shù)。如wb.weibo[0]['retweet_num']為最新一條微博獲得的轉(zhuǎn)發(fā)數(shù);

comment_num:存儲(chǔ)微博獲得的評(píng)論數(shù)。如wb.weibo[0]['comment_num']為最新一條微博獲得的評(píng)論數(shù);

publish_tool:存儲(chǔ)微博的發(fā)布工具。如wb.weibo[0]['publish_tool']為最新一條微博的發(fā)布工具。

定期自動(dòng)爬取微博(可選)

要想讓程序每個(gè)一段時(shí)間自動(dòng)爬取,且爬取的內(nèi)容為新增加的內(nèi)容(不包括已經(jīng)獲取的微博),請(qǐng)查看定期自動(dòng)爬取微博。

如何獲取cookie

要了解獲取cookie方法,請(qǐng)查看cookie文檔。

如何獲取user_id

要了解獲取user_id方法,請(qǐng)查看user_id文檔,該文檔介紹了如何獲取一個(gè)及多個(gè)微博用戶user_id的方法。

常見問題

如果運(yùn)行程序的過程中出現(xiàn)錯(cuò)誤,可以查看常見問題頁(yè)面,里面包含了最常見的問題及解決方法。如果出現(xiàn)的錯(cuò)誤不在常見問題里,您可以通過發(fā)issue尋求幫助,我們會(huì)很樂意為您解答。

相關(guān)項(xiàng)目

weibo-crawler - 功能和本項(xiàng)目完全一樣,可以不添加cookie,獲取的微博屬性更多;

weibo-search - 可以連續(xù)獲取一個(gè)或多個(gè)微博關(guān)鍵詞搜索結(jié)果,并將結(jié)果寫入文件(可選)、數(shù)據(jù)庫(kù)(可選)等。所謂微博關(guān)鍵詞搜索即:搜索正文中包含指定關(guān)鍵詞的微博,可以指定搜索的時(shí)間范圍。對(duì)于非常熱門的關(guān)鍵詞,一天的時(shí)間范圍,可以獲得1000萬(wàn)以上的搜索結(jié)果,N天的時(shí)間范圍就可以獲得1000萬(wàn) X N搜索結(jié)果。對(duì)于大多數(shù)關(guān)鍵詞,一天產(chǎn)生的相應(yīng)微博數(shù)量應(yīng)該在1000萬(wàn)條以下,因此可以說(shuō)該程序可以獲得大部分關(guān)鍵詞的全部或近似全部的搜索結(jié)果。而且該程序可以獲得搜索結(jié)果的所有信息,本程序獲得的微博信息該程序都能獲得。

貢獻(xiàn)

歡迎為本項(xiàng)目貢獻(xiàn)力量。貢獻(xiàn)可以是提交代碼,可以是通過issue提建議(如新功能、改進(jìn)方案等),也可以是通過issue告知我們項(xiàng)目存在哪些bug、缺點(diǎn)等,具體貢獻(xiàn)方式見為本項(xiàng)目做貢獻(xiàn)。

貢獻(xiàn)者

感謝所有為本項(xiàng)目貢獻(xiàn)力量的朋友,貢獻(xiàn)者詳情見貢獻(xiàn)者頁(yè)面。

注意事項(xiàng)

1.user_id不能為爬蟲微博的user_id。因?yàn)橐牢⒉┬畔?#xff0c;必須先登錄到某個(gè)微博賬號(hào),此賬號(hào)我們姑且稱為爬蟲微博。爬蟲微博訪問自己的頁(yè)面和訪問其他用戶的頁(yè)面,得到的網(wǎng)頁(yè)格式不同,所以無(wú)法爬取自己的微博信息;如果想要爬取爬蟲微博內(nèi)容,可以參考獲取自身微博信息;

2.cookie有期限限制,大約三個(gè)月。若提示cookie錯(cuò)誤或已過期,需要重新更新cookie。

總結(jié)

以上是生活随笔為你收集整理的python 爬虫 微博 github_GitHub - Joria0414/weiboSpider: 新浪微博爬虫,用python爬取新浪微博数据...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。