微博每个用户有一个专属该用户的uid 通过该uid可访问该用户的主页 在主页拿到需要的数据 但微博对用户主页的访问,部分做了重定向处理,导致无法拿到数据 下面解决该重定向问题
import re
import time
import requests
def weibo(id):
url = "https://weibo.com/u/{}"
headers = {
'Host': 'weibo.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
'Cookie': 'SUB=_2AkMoU3Sjf8NxqwJRmPkTz23maY12zQrEieKeD4V4JRMxHRl-yT9kqmottRB6A9NaTL2vPrAfERq6ZG2p_CMqeTKNzLVY',
}
resp = requests.get(url.format(id), headers=headers, allow_redirects=False)
# 未重定向
if 'File not found' not in resp.text and len(resp.text) > 500:
content = resp.text
# 重定向时,返回的消息体是 File not found
else:
new_url = "https://weibo.com" + resp.headers["Location"]
resp = requests.get(new_url, headers=headers)
content = resp.text
time.sleep(0.5)
fans = re.search('<strong.*?>(\d{5,20})<.*?strong>', content, re.S).group(1).strip()
fans = int(fans)
print(fans)
return fans
if __name__ == '__main__':
weibo('1827683445')