# 适用的场景:数据采集的时候 需要绕过登录 然后进入某个页面
# 个人信息页面时utf-8 但是还报错了编码错误 因为并没有进入个人信息页面 而是跳转到了登录页面
# 登录页面不是utf-8 所以报错
# 什么情况下 访问不成功
# 因为请求头的信息不够 所以访问不成功
import urllib.request
url = 'https://weibo.com/u/7520422345'
headers = {
# cookie中携带着你的登录信息 如果登录之后的cookie 那么我们就可以携带着cookie进入到任何页面
'cookie': 'SINAGLOBAL=2294898703994.832.1635084315080; ULV=1640505725013:2:1:1:1876518562754.7322.1640505725006:1635084315166; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5dr4dlFfTvuiqf6A4ekXI05JpX5KMhUgL.FoMfeo5XS0qRehz2dJLoIEXLxK-LBo5L12qLxKqL1KqLBo.LxKqL1heLBoeLxK-LBo.LBozLxK.LBK-LB-Bt; ALF=1675437950; SSOLoginState=1643901951; SCF=AgK1PwWYJAlqYTBkpgwPwQFkXZnci0Rarnh0fobF2vNgAsocdLeMns-KsPVurq6SU9NSk7zKS25RCP9ZxNezKUE.; SUB=_2A25M_4OvDeRhGeFL6VIV9yjEyz6IHXVvjPJnrDV8PUNbmtANLXHnkW9NQkNykYY9FIeI0w91iVPtHRg8L7UJ0OQa; XSRF-TOKEN=70SbPiv7y1dIKYanvw2VSl0k; WBPSESS=kyTAq6c3qXeGLwO0O6zVtx1Rcz23WLek-mKU_qe7Q87M_tSFbXM0RxddXAKV4wXDJ-LSe-4YmpYT6qC21nMIEfuBQ0QdaJ8Hrjb4wRxmlc_pYC_Ze6KF_ZGytTag81PZW5IbUrZjbV5k3QeCBy43ZA==',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
# referer 判断当前路径是不是由上一个路径进来的 一般情况下 用于图片的防盗链
'referer': 'https://weibo.cn/'
}
# 请求对象的定制
request = urllib.request.Request(url=url,headers=headers)
# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(request)
# 获取响应的数据
content = response.read().decode('utf-8')
# 将数据保存到本地
with open ('weibo.html','w',encoding='utf-8') as fp:
fp.write(content)