Wr 自留地 Wr 自留地
  • 首页
  • 资源
  • 工具
  • 教程
  • 标签
  • 友链
  • 关于

Python 基础教程 第十三期:使用 Requests 编写爬虫

_Wr_ 3年前

Requests库的官方文档指出:让HTTP服务人类。 细心的读者会发现, Requests库的 作用就是请求网站获取网页数据的。

一般情况下,大多数网站都会拦截 Python 爬虫。这个时候就需要伪装成普通浏览器的 User Agent。(点击此处以获取常用 User Agent)

这里,就需要把请求头(headers)中的 User Agent 选项定义为你选择的 User Agent,如下:

import requests

headers={
    'User Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'
}
get=requests.get('https://wrsblog.cn/', headers=headers)
print(get)

程序输出的结果如下:

<Response [200]>
Python 基础教程 第十三期:使用 Requests 编写爬虫-Wr 自留地

这也就说明网站服务器返回 200 代码,意思就是网站服务器响应正常。

Requests 库请求并不会 ”一帆风顺” ,当遇到一些情况时, Requests库会抛出错误或者异常, Requests库的错误和异常主要有以下4种。

  • Requests抛出一个ConnectionError异常, 原因为网络问题(如DNS查询失败、 拒绝连接等)。
  • Response.raise_ for_ status()抛出一个HTTPError异常,原因为 HTTP请求返回了不成 功的状态码(如网页不存在, 返回404错误)。
  • Requests抛出一个Timeout异常, 原因为请求超时。
  • Requests抛出一个TooMany Redirects 异常, 原因为请求超过了设定的最大重定向次数。

所有Requests显式抛出的异常都继承自requests.exceptions.RequestException,当发现这些错误或异常进行代码修改重新再来时,爬虫的程序又开始重新运行了,爬取到的数据又会重新爬取一次,这对千爬虫的效率和质量来说都是不利的。 这时,便可通过Python 中的 try来避免异常了, 具体使用方法如下:

import requests

headers={
    'User Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'
}
get=requests.get('https://wrsblog.cn/', headers=headers)
try:
    print (get.text)

except ConnectionError:
    print ("连接错误")

抓取Wr 博客首页的输出内容如下:

Python 基础教程 第十三期:使用 Requests 编写爬虫-Wr 自留地

通过try和except, 如果请求成功了,会打印网页的源代码。 如果请求出现了 ConnectionError异常,则会打印“连接错误” ,这样程序就不会报错,而是给编程者一个提示,不会影响下面代码的运行。


要学习完整的 Python 爬虫的话,可以下载《从零开始学Python网络爬虫》这本书的 PDF,下载地址在下面:

Python教程爬虫编程
相关文章
  • [教程] 腾讯云服务器 Ubuntu 实例开启 root 用户通过密码 SSH 远程登录教程
  • [教程]《索尼克大冒险 2》PC 版 Mod 制作教程 (一): 各文件/目录的详细作用
  • BAT 脚本仿蓝屏
  • WordPress教程:查看当天用户注册数量以及用户注册时间排序
  • 去除 WordPress 管理菜单栏 WordPress logo
_Wr_「作者」
赞赏
_Wr_
评论 (0)
发表评论
Copyright © 2019-2023 Wr 自留地.        
  • 首页
  • 资源
  • 工具
  • 教程
  • 标签
  • 友链
  • 关于