【python爬虫自学记录】【8】-异常处理,异常状态码,异常处理实战,浏览器header伪装与实战

本文记录了Python爬虫过程中遇到的异常状态码,如URLError和HTTPError的原因,以及如何进行异常处理。同时介绍了浏览器Header伪装的原理和实战技巧,通过设置伪装的Header可以成功绕过网站的终端识别限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分异常状态码

不同状态码的意义

URLError与HTTPError

URLError出现原因:

1.连不上服务器
2.远程URL不存在
3.无网络
4.触发了HTTPError

异常处理示例

url ="https://www.douban.com/group/topic/55202938/"
try:
    urllib.request.urlopen(url)

except urllib.error.URLError as e:
    if hasattr(e,"code"):
        print(e.code)
    if hasattr(e,"reason"):
        print(e.reason)

print("dfdf")

输出
418

dfdf

浏览器伪装技术

原理

用爬虫技术去爬取网站,网站会通过报头来确认终端,如果发现报头不对,不是浏览器,就会禁止访问,所以需要伪造一个报头去欺骗网站。让网站以为自己的终端是浏览器

如果要修改报头,可以用
urllib.request.build_opener()进行
也可以用
urllib.request.Request()下的add_header()实现浏览器报头的模拟

实战
url = "https://www.douban.com/group/topic/55202938/"
# 头文件格式header =(“User-Agent”,具体用户代理值)
headers = ("User-Agent",
           "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()
fh = open("D:\\pycharmprojects\\untitled\\post.html","wb")
fh.write(data)
fh.close()
print(len(data))

伪造报头后,就可以成功访问网站了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值