2019-11-20 爬网页6-解决带Authorization的http请求

工作中需要爬一台内网中服务器的网页,自动获取返回的图片信息。
但是执行代码没有获得希望的信息。

尝试在浏览器中输入网址,结果跳以下界面
在这里插入图片描述
原来是要验证才能连接成功。
点击‘取消’,观察网络信息
在这里插入图片描述
果然是这样。请求头中没有包含Authorization,所以验证没通过。

然后再尝试一下,输入用户名和口令,网页可以正常显示。
观察网络信息,此时请求头中出现了Authorization。
在这里插入图片描述
网上查了一下,一堆攻略,基本都是一个意思。
追加代码如下:

def get_authorization():
    return base64.b64encode(user_name + ":" + user_passwd);
headers = {
    'Authorization': 'Basic {}'.format(get_authorization()),
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}

再次执行代码,终于可以顺利爬到网页信息了。

关于HTTP请求头Authorization,可以参见 https://blog.csdn.net/qq_42514453/article/details/85385925

注意:Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。

发布了122 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42555985/article/details/103163463