五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python爬蟲過程中遇到微博since_id怎樣處理

2021-02-26 11:32 作者:呆唯真可愛O_O  | 我要投稿

????在崔慶才《網(wǎng)絡爬蟲開發(fā)實戰(zhàn)》第6.3小節(jié)中,舉出Ajax數(shù)據(jù)爬取的一個實例,即使用Python爬取微博數(shù)據(jù)。但著書時間相對較早,原本的請求URL中用‘page’就可以實現(xiàn)翻頁,如今卻是使用‘since_id’。

原本URL末尾是page(1,2,3....)不是since_id

????但在仔細觀察后我們便可發(fā)現(xiàn),since_id的值在第一頁為‘’,也就是沒有,而下一頁的since_id,是可以在上一頁的 預覽--data--cardlistinfo 中找到的。意思是,上一頁微博瀏覽到這一條,下一頁微博從這一條開始。

????當時的我挺懵逼的,這必得要 get_since_id 啊,可你也得先 get_page 啊,可你不知道since_id 怎么 get_page 啊。。。。。。

真是個套娃問題

????但當我在網(wǎng)上尋求答案時,發(fā)現(xiàn)了global這個方法,它可以改變函數(shù)外的數(shù)值。大概就像這樣:

????原本函數(shù)內(nèi)的x是封裝在函數(shù)里的,與外界沒有關系,但global就把它們聯(lián)系起來了。

????所以,我們可以在函數(shù)外命令since_id為‘’,然后通過global迭代改變它的值。是不是感覺這樣一個無限循環(huán)的問題可以解決了?

代碼附上:


結果大概是這樣的:

詳細代碼:

import requests

from pymongo import MongoClient as mc

from pyquery import PyQuery as pq

#basic_info#

basic_url='https://m.weibo.cn/api/container/getIndex?type=uid&value=2830678474&containerid=1076032830678474'

since_id=''

final_url=basic_url+'&since_id='+str(since_id)

headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74'}

first_result=requests.get(final_url,headers=headers)

second_result=first_result.json()

third_result=second_result.get('data')

#get_since_id#

def get_since_id():

? ? global since_id

? ? forth_result=third_result.get('cardlistInfo').get('since_id')

? ? return since_id? ?

#get_page#

def get_page(since_id):

? ? fifth_results=third_result.get('cards')

? ? for fifth_result in fifth_results:

? ? ? ? six_result=fifth_result.get('mblog')

? ? ? ? weibos={}

? ? ? ? weibos['comments']=six_result.get('comments_count')

? ? ? ? weibos['text']=pq(six_result.get('text')).text()

? ? ? ? yield weibos

#main#

def main():

? ? since_id=''

? ? for i in range(1,11):

? ? ? ? print('page_{}'.format(i))

? ? ? ? weibos=get_page(since_id)

? ? ? ? for weibo in weibos:

? ? ? ? ? ? print(weibo)

? ? ? ? since_id=get_since_id()

if __name__=='__main__':

? ? main()


本人非計算機專業(yè)學生,編程也是剛學不久,發(fā)文章出來也是希望大家少像我一樣踩坑,如果有講的不好的地方,請多包涵?。。?/span>


Python爬蟲過程中遇到微博since_id怎樣處理的評論 (共 條)

分享到微博請遵守國家法律
上林县| 庄河市| 金寨县| 建阳市| 滦南县| 浦县| 武定县| 美姑县| 游戏| 孟连| 长丰县| 军事| 平定县| 板桥市| 东乌珠穆沁旗| 蕲春县| 满洲里市| 汝南县| 横峰县| 通海县| 建德市| 鄂托克前旗| 张家港市| 瓦房店市| 安溪县| 肇庆市| 宝丰县| 新建县| 普陀区| 潞城市| 南投市| 常山县| 顺义区| 都昌县| 开鲁县| 洛川县| 鹿邑县| 铁岭市| 韶关市| 顺昌县| 罗平县|