百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python爬虫:数据抓取工具及类库详解

off999 2024-10-14 12:06 32 浏览 0 评论

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: ncepu_Chen

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

数据抓取的命令行工具

curl

curl是一个利用URL语法在命令行下进行网络通信的工具,类似于一个命令行版本的浏览器,但不会对页面进行渲染.其用法很简单,直接在命令行中输入curl [URL地址] [参数]即可,如:

其常用参数如下:

wget

wget也是一个利用URL语法在命令行环境下进行文件传输的工具,其基本用法为wget [URL地址] [参数],如:

wget https://www.baidu.com

其常用参数如下:

下面例子演示如何使用wget镜像一个网站到本地并启动:

使用wget --mirror命令将整个网站的镜像下载到本地

切换到下载好的资源目录下,使用Python自带的http.server模块开启一个微型服务器

访问localhost:8000,即可访问我们搭建在本机上的镜像网站.

数据抓取的Python库

Python中有两个常用的抓取数据的库:urllib和requests.其中requests库封装了urllib库,且比urllib库更为优雅.因此,我们可以直接学习requests库.

requests库

request库的应用比较简单,下面是官方提供的一段示例代码:

r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code # 返回 200
r.headers['content-type'] # 返回 'application/json; charset=utf8'
r.encoding # 返回 'utf-8'
r.text # 返回 u'{"type":"User"...'
r.json() # 返回 {u'private_gists': 419, u'total_private_repos': 77, ...}

requests库的简单使用

发送HTTP请求

下面几个方法可以发送HTTP请求,对应于HTTP的各种请求类型

  • requests.get(url, params=None, **kwargs)
  • requests.post(url, data=None, json=None, **kwargs)
  • requests.put(url, data=None, **kwargs)
  • requests.delete(url, **kwargs)
  • requests.head(url, **kwargs)
  • requests.options(url, **kwargs)

上面六个方法分别对应HTTP请求类型中的GET,POST,PUT,DELETE,HEAD和OPTIONS,各参数意义如下:

  • url: 请求的URL地址.
  • params: GET请求放进URL中的请求参数,以字典形式存储.
  • data: 请求体中的数据.
  • **kwargs: 该请求需要的其他参数,包括:
  • headers: 以字典格式存储的请求头内容.
  • json: 以字典形式存储的请求体中数据,等同于data参数
  • cookies: 以字典形式存储的cookies.
  • allow_redirects: 是否允许重定向,为一个布尔值
  • timeout: 设置超时时间,单位为秒
  • auth: 设置身份认证信息

解析HTTP响应

上述requests.get(), requests.post(), requests.put(), requests.delete(), requests.head(), requests.options()方法都会返回一个requests.models.Response对象,该对象封装了HTTP响应报文,该对象提供了下述常用方法和属性用于解析HTTP响应.

解析响应状态的属性和方法

url: 表示该HTTP请求的URL.

payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get('http://httpbin.org/get', params=payload)
r.url # 得到 http://httpbin.org/get?key1=value1&key2=value2&key2=value3
  • tatus_code: 该HTTP响应的状态码.
  • reason: 响应状态码的说明.

解析响应内容的属性和方法:

  • encoding: 该HTTP响应的编码.
  • content: 该HTTP响应的内容.
  • text: 该HTTP响应的文本.根据r.encoding设置的编码格式对r.content进行解码得到.
  • .json(): 将json格式的相应内容解析为字典,若解析失败则抛出ValueError异常.

解析响应头的属性和方法:

  • headers: 以字典形式返回HTTP响应头,该字典的特殊之处在于其不区分键的大小写.
r.headers['Content-Type'] # 得到 'application/json'
r.headers.get('content-type') # 得到 'application/json'

报错

  • 遇到网络问题(如DNS 查询失败、拒绝连接等)时,抛出一个ConnectionError异常.
  • 若HTTP请求返回了不成功的状态码(4xx或5xx),调用Response对象的raise_for_status() 会抛出一个HTTPError异常.
  • 若请求超时,则抛出一个Timeout异常.
  • 若请求超过了设定的最大重定向次数,则会抛出一个TooManyRedirects异常.

上述所有异常都继承自requests.exceptions.RequestException .

相关推荐

戴尔官网保修查询入口(戴尔售后保质期查询)

可以按照以下步骤查询戴尔笔记本电脑的保修期:1.打开戴尔官网:https://www.戴尔.com/zh-cn/售后服务/保修政策.html2.点击页面上方的“服务与支持”按钮,进入戴尔的服务支持...

手机号邮箱登录入口(手机号邮箱官网)

手机163邮箱登录入口如下:163邮箱官网入口:https://smart.mail.163.com/login.htm点击进入登录或者注册邮箱即可。手机浏览器访问进入官网http://www.123...

sd卡(sd卡无法读取怎么修复)

  SD卡是大卡,相机用的;普通的手机内存卡,是小卡,正规的名称是macrosd卡,也就是微型SD卡。可以通过卡套转为普通的SD卡的大小。  其实就是大小不同。但手机上的内存卡,人们经常也俗称为SD...

路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
windows7蓝牙功能在哪里打开

点击搜索框在windows7系统主界面点击开始菜单,点击打开搜索框。输入命令输入services.msc后回车,在列表中找到并右击BluetoothSupportS...点击属性选择进入属性菜单,...

2010激活密钥(microsoft2010激活密钥)
2010激活密钥(microsoft2010激活密钥)

步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...

2025-11-19 04:03 off999

联想官方刷新bios工具(联想电脑刷新bios)

刷新BIOS需要使用联想的官方网站或授权维修中心来进行操作。以下是一些基本步骤:1.访问联想的官方网站,找到BIOS更新程序并下载。在下载过程中,请确保选择与您计算机型号匹配的版本。2.将下载的B...

苹果ios14系统下载(苹果ios14.1下载)
苹果ios14系统下载(苹果ios14.1下载)

1方法一步骤/方式一打开Appstore。步骤/方式二在搜索栏点击搜索框。步骤/方式三搜索并点击需要下载的软件。步骤/方式四点击获取。步骤/方式五最后验证ID密码即可。1.在应用商店搜索你要下载的应用名称。2.点击下载按钮,如果要求登...

2025-11-19 03:03 off999

office2010怎么免费永久激活密钥

用这个试试,一个KMS激活工具可以激活2010到2019的Office自家的目前用的就是这个microsoft6477.moe/1716.html直接使用这个Microsoftoffice2010...

类似爱加速的国内ip(类似爱加速的app)
类似爱加速的国内ip(类似爱加速的app)

推荐“V8盒子”。这一款免费无广告的模拟器,不同于其它软件盒子,而是类似于X8沙箱,满足游戏多开,画中画,悬浮球操作,熄屏后台运行等多功能的沙箱盒子.支持一键root,一键安装xposed框架,能在安卓/苹果手机上运行多个安卓/ios虚拟系...

2025-11-19 02:03 off999

阿里旺旺手机客户端(阿里旺旺手机app)

手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。  阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...

最纯净的pe装机工具(pe工具哪个纯净)

U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...

装一个erp系统多少钱(wms仓库管理软件)

现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

取消回复欢迎 发表评论: