Python爬虫连载4-Error模块、Useragent详解
一、error
1.URLError产生的原因:(1)没有网络;(2)服务器连接失败;(3)不知道指定服务器;(4)是OSError的子类
from urllib import request,error if __name__ == "__main__": url = "http://www.baidu.comfdsfdfsf" try: req = request.Request(url) rsp = request.urlopen(req) html = rsp.read().decode() print(html) except error.URLError as e: print("URLError:{0}".format(e.reason)) print("URLError:{0}".format(e)) except Exception as e: print(e)
2.HTTPError是URLError的一个子类
3.两者区别:HTTPError是对应的HTTP请求的返回码错误,如果返回错误码码是400以上的,则引发HTTPError;URLError对应的一般时网络出现问题,包括url问题;关系区别:OSError-URLError-HTTPError
二、useragent
1.UserAgent:用户代理,简称UA,属于heads的一部分,服务器通过UA来判断访问者身份;常见的UA值,使用的时候可以直接复制粘贴,也可以用浏览器访问的时候抓包。如下面的链接:
https://blog.csdn.net/wangqing84411433/article/details/89600335
2.设置UA可以通过两种方式:heads\
url2 = "http://www.baiu.com" try: #使用head方法伪装UA headers = {} headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" req2 = request.Request(url2,headers=headers) rsp2 = request.urlopen(req2) html2 = rsp2.read().decode() print(html2) except error.HTTPError as e: print("URLError:{0}".format(e.reason)) print("URLError:{0}".format(e)) except error.URLError as e: print("URLError:{0}".format(e.reason)) print("URLError:{0}".format(e)) except Exception as e: print(e)
也可以把
req2 = request.Request(url2,headers=headers)
改成如下形式也可以
req2 = request.Request(url2) req2.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko")
三、源码
Reptile4_ErrrorAndUserAgent.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptile4_ErrrorAndUserAgent.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Python爬虫连载4-Error模块、Useragent详解的更多相关文章
- Python标准库之Sys模块使用详解
sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 使用sy ...
- Python 命令行工具 argparse 模块使用详解
先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...
- python中os和sys模块的详解
平时在工作中经常会用到os模块和sys模块的一些特性,下面是这些特性的一些相关解释,希望对大家有所帮助 os模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os. ...
- 【python基础】os.path模块常用方法详解
os.path模块 主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. 更多的方法可以去查看官方文档:http://docs.python.org/library/os.path. ...
- python的内置模块之os模块方法详解以及使用
1.getcwd() 获取当前工作路径 import os print(os.getcwd()) C:\python35\python3.exe D:/pyproject/day21模块/os模块.p ...
- python的内置模块random随机模块方法详解以及使用案例(五位数随机验证码的实现)
1.random(self): Get the next random number in the range [0.0, 1.0) 取0到1直接的随机浮点数 import random print( ...
- 转python爬虫:BeautifulSoup 使用select方法详解
1 html = """ 2 <html><head><title>The Dormouse's story</title> ...
- Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块
专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...
- python之模块datetime详解
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块datetime详解 import datetime #data=datetime.dat ...
- Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...
随机推荐
- 调整markdown css样式
H1标题 H2标题 H3标题 H4标题 H5标题 H6标题 段落: 世情薄,人情恶.雨送黄昏花易落.晓风干,泪痕残.欲笺心事,独语斜阑.难,难,难! 人成各,今非昨.病魂常似秋千索.角声寒,夜阑珊.怕 ...
- yarn-site.xml 配置介绍
yarn-site.xml 配置介绍 yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb 说明:单个容器 ...
- 快速建立一个Django项目
快速建立一个Django项目 版本说明 一定要先明确好使用的Python版本和所使用包的版本,避免耽误不要的时间 Python==3.6.4 Django==1.11.9 djangoresframe ...
- PHP-CMS代码审计(4)
这次找了个发卡平台,url: https://files.cnblogs.com/files/b1gstar/kamiphp.zip 从52破解上下载的 : 先把网站搭建起来. 网站没有采用mvc框 ...
- 牛客网剑指offer第13题——调整数组顺序使得奇数位于偶数前面
题目来源:剑指offer 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变 ...
- qt creator源码全方面分析(2-4)
目录 Qt Creator API Reference 库 核心库 其他库 插件 Qt Creator API Reference Qt Creator的核心基本上只是一个插件加载器.所有功能都在插件 ...
- BZOJ #2506. calc [根号分治,莫队,二分]
\(p\) 是个正常范围, \(\sqrt p <= 100\) 比较小,预处理出来 \(a_i % p == k\) 的位置,然后丢进去,最后询问的 \(p\) 如果大于 \(100\) 就莫 ...
- SPFA的优化一览
目录 序 内容 嵬 序 spfa,是一个早已没人用的算法,就像那些麻木的人, 可谁有知道,他何时槃涅 一个已死的算法 ,重生 内容 关于\(NOI2018D1T1\)的惨案,为了以防spfa被卡. 关 ...
- PHP0001:PHP环境搭建
1,本机域名解析 网站域名访问流程 配置阿帕奇服务器 的 路径 阿帕奇中添加 PHP 支持 一个简单的PHP 代码 检测PHP apache 语法 httpd -t apache 的启动 获取网站 ...
- 【JavaScript】JS总结 – 乱
一. 重要:js中的function函数声明.函数表达式 // 函数声明 // Ex: 会在代码执行之前提前加载到作用域中,即js解析器会优先读取,确保在所有代码执行之前声明已经被解析:所以可以在定义 ...