import requests res = requests.get('http://bj.xiaozhu.com/') print(res)反回结果是:<Response [200]>,如果是400或者404就代表请求失败
import requests headers = { '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 Edg/96.0.1054.57' } res = requests.get('http://bj.xiaozhu.com/',headers=headers) print(res.text)Requests 库不仅有 get()方法,还有 post()等方法。 post()方法用于提交表单来爬取需要 登录才能获得数据的网站,这部分内容会在后面章节中学习 ,这里不再赘述。学习 get() 方法足够我们爬取大部分的网站了。
Requests 库请求并不会“ 一帆风顺”,当遇到 些情况时, Requests 库会抛出错误或 者异常 Requests 库的错误和异常主要有以下 4种
• Requests 抛出 ConnectionError 异常,原因为网络问题(如 DNS 查询失败、拒 绝连接等)
• Response.raise_ for_ status ()抛出 HTTPError 异常,原因为 HTTP 请求返回了不成 功的状态码(如网页不存在,返回 404 错误〉。
• Requests 抛出 Timeout 异常,原因为请求超时
• Requests 抛出 一个 TooMa Redirects 异常,原因为请求超过了设定的最大重定向次数。
所有 Requests 显式抛出的异常都继承自 requests.exceptions.RequestException ,当发现 这些错误或异常进行代码修改重新再来时,爬虫的程序叉开始重新运行了,爬取到的数据 又会重新爬取 次,这对于爬虫的效率和质量来说都是不利的。这时,便可通过 Python 中的try来避免异常了,具体使用方法如下:
import requests headers = { '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 Edg/96.0.1054.57' } res = requests.get('http://bj.xiaozhu.com/',headers=headers) try: print(res.text) except ConnectionError: #出现错误执行下面操作 print('拒绝连接')