爬虫的第一步,肯定是要会发起请求,只有当我们通过请求来获取到有用的数据,这时候才能进行接下来的处理。
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运维工程师问题,运维工程师应具备什么技能,运维工程师列常检测什么,国投电力初级运维工程师,运维工程师日常照片,华北电力运维工程师是做什么的,网络工程师辛苦吗电商运维工作,电气工程师运维月薪,运维工程师百度,运维工程师相关的书。