还有一种方法apparent_encoding,可以通过分析网页内容来得到编码,有时候网站没有头部标识时,为了能正常显示,一般常用 apparent_encoding 替代 encoding。
五、状态码异常
raise_for_status的作用就是返回一个异常错误requests.HTTPError,当不是200的时候;可以说,只要返回的不是200,都不算是访问成功!
我们用try……except语句来捕获异常;先执行try代码块里的语句,raise_for_status检测状态码不是200,就跳到except语句,返回一个提示。
六、完整代码
整个代码的作用,就是输出指定网址的网页源代码。
上图是我加了注释的代码。
为了使代码更强健,万一遇到网络问题,可以加个超时timeout秒数设定,只要超过设定值,就不再等待。这里的时间是包含连接connect和读取read的总时间,如果想让requests一直等下去,就设置为None。昨天我爬取小说,如果设置timeout,可能就不会宕机了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。