使用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 出現了不可...