0
点赞
收藏
分享

微信扫一扫

python爬虫-03-urllib库的使用,如何使用python发起get、post请求


爬虫的第一步,肯定是要会发起请求,只有当我们通过请求来获取到有用的数据,这时候才能进行接下来的处理。

1、介绍

URLLIB:​​urllib​​​是​​python​​自带的一个基础库,可以模拟浏览器的行为,发送各种请求,并将数据进行保存。

2、urlopen函数

发起get、post请求的函数;

(1)示例

from urllib import request  # 引入urllib模块中的request方法

Req = request.urlopen('http://www.baidu.com') # 使用request方法中的urlopen函数,发起get请求,访问百度
print(Req.read().decode('utf8')) # 输出返回的信息,并使用utf-8解码

(2)常用参数

  • data:请求参数,且一旦设置了​​data​​​,请求方式会变成​​post​​方式
  • timeout:超时时间,如果请求的地址在配置的时间范围内没有响应,即中断连接

(3)返回信息获取

  • read:获取所有信息,返回类型为​​str​​;
print(Req.read().decode('utf8'))
  • readline:获取第一行信息,返回类型为​​str;​
print(Req.readline().decode('utf-8'))
  • readlines:将返回内容按行读取,并放置到列表中,返回类型为​​list;​
print(Req.readlines())  # 他不支持使用decode
  • getcode:获取返回状态码,可以用来判断访问是否正常;
print(Req.getcode())
  • getheaders:获取返回头。并将其放置到列表中,返回类型为​​list​​;
print(Req.getheaders())

(4)data参数示例

仅示例做参考,不用在意是否可以通过这种方式访问百度哈;

from urllib import request
from urllib import parse

Data = bytes(parse.urlencode({'wd': "运维家的博客"}), encoding='utf-8') # 将请求内容转化成字节流编码格式
Req = request.urlopen('http://www.baidu.com', data=Data)
print(Req.read().decode('utf8'))

(5)timeout参数示例

from urllib import request

Req = request.urlopen('http://www.baidu.com', timeout=10) # 单位是秒
print(Req.read().decode('utf8'))

3、urlretrieve函数

发起请求,并直接将返回内容进行保存;需要注意如果你文件中有内容会被覆盖,他是一个重写的动作;

(1)示例

剩余内容请转至VX公众号 “运维家” ,回复 “167” 查看。

------ “运维家” ,回复 “167” ------
------ “运维家” ,回复 “167” ------
------ “运维家” ,回复 “167” ------
重庆安全运维工程师入行门槛低,运维监理工程师是做什么的,大连找工作运维工程师,系统运维工程师工作计划的编写,系统运维工程师学习课程,适合运维工程师的兼职,信息运维工程师绩效考核表,高级运维工程师薪资待遇,风电运维工程师连体工作服,运维工程师的sql面试题。
it运维工程师问题,运维工程师应具备什么技能,运维工程师列常检测什么,国投电力初级运维工程师,运维工程师日常照片,华北电力运维工程师是做什么的,网络工程师辛苦吗电商运维工作,电气工程师运维月薪,运维工程师百度,运维工程师相关的书。​

python爬虫-03-urllib库的使用,如何使用python发起get、post请求_运维工程




举报

相关推荐

0 条评论