爬取微博指定使用者的微博內容

2021-10-08 15:40:32 字數 2603 閱讀 3559

使用python3爬取微博指定使用者的內容

import urllib.request

import json

#定義要爬取的微博大v的微博id

id='5866810652'

#設定**ip

proxy_addr="192.168.1.101"

#定義頁面開啟函式

#獲取微博主頁的containerid,爬取微博內容時需要此id

def get_containerid(url):

data=use_proxy(url,proxy_addr)

content=json.loads(data).get('data')

for data in content.get('tabsinfo').get('tabs'):

if(data.get('tab_type')=='weibo'):

containerid=data.get('containerid')

return containerid

def get_userinfo(id):

url=''+id

data=use_proxy(url,proxy_addr)

content=json.loads(data).get('data')

profile_image_url=content.get('userinfo').get('profile_image_url')

description=content.get('userinfo').get('description')

profile_url=content.get('userinfo').get('profile_url')

verified=content.get('userinfo').get('verified')

guanzhu=content.get('userinfo').get('follow_count')

name=content.get('userinfo').get('screen_name')

fensi=content.get('userinfo').get('followers_count')

gender=content.get('userinfo').get('gender')

urank=content.get('userinfo').get('urank')

def get_weibo(id,file):

i=1while true:

url=''+id

weibo_url=''+id+'&containerid='+get_containerid(url)+'&page='+str(i)

try:

data=use_proxy(weibo_url,proxy_addr)

content=json.loads(data).get('data')

cards=content.get('cards')

if(len(cards)>0):

for j in range(len(cards)):

print("-----正在爬取第"+str(i)+"頁,第"+str(j)+"條微博------")

card_type=cards[j].get('card_type')

if(card_type==9):

mblog=cards[j].get('mblog')

attitudes_count=mblog.get('attitudes_count')

comments_count=mblog.get('comments_count')

created_at=mblog.get('created_at')

reposts_count=mblog.get('reposts_count')

scheme=cards[j].get('scheme')

text=mblog.get('text')

with open(file,'a',encoding='utf-8') as fh:

fh.write("----第"+str(i)+"頁,第"+str(j)+"條微博----"+"\n")

i+=1

else:

break

except exception as e:

print(e)

pass

if __name__=="__main__":

file='f:\\'+id+".txt"

get_userinfo(id)

get_weibo(id,file)

爬取新浪微博

學到的東西。1 習慣用logger,而不是用print self.logger.debug 開始解析 format response.url 2 習慣用正規表示式 這是在pipeline清理資料時用到的 s 5分鐘前 if re.match d 分鐘前 s minute re.match d s g...

爬蟲之爬取微博

3忘記了包含yeild的函式生成器目的是可以作為乙個迭代物件 貼源 importrequests fromurllib.parseimporturlencode frompyqueryimportpyqueryaspq base url header defget page page,value p...

python爬取微博熱搜

1 import requests 2importre3 import bs44 importos5 import datetime 67 url 8 headers 9try 10 r requests.get url,headers headers 11except 12 print 出現了不可...