urllib库的学习与使用


urllib是Python标准库中最常用的Python网页访问的模块,它可以让用户像访问本地文本文件一样读取网页的内容。

Request模块

request模块主要用于打开和读取URL
使用前首先导入
from urllib import request
request模块定义了以下函数:

urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

用于打开统一资源定位地址 url,返回一个Response对象
各参数的作用
url:(表示有效网址的字符串或Request对象)
data:(默认为None,以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求)
timeout(可选参数):请求连接的等待时间,超时则抛出异常,以秒为单位。
cafile、capath:(为HTTPS请求指定了一组可信的CA证书,默认为None,一般不用)
cadefault:(默认为False,可忽略)
context:(描述各种SSL选项的SSLContext实例,默认为None,一般不用)
例如:

response = request.urlopen("https://www.baidu.com")

由于部分网站拒绝爬虫程序的连接请求,所以我们要设置User-Agent参数来隐藏身份,User-Agent存放于headers中,网站服务器就是通过查看User-Agent来判断访问者的信息。此时我们需要用到下面的Request来构造一个Request对象

Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

写个简单的例子

from urllib import request
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/78.0.3904.108 Safari/537.36"}#使用谷歌浏览器的User-Agent
req = request.Request("https://www.baidu.com", headers = header)
response = request.urlopen(req)
html = response.read().decode("utf-8")#read()返回bytes类型数据,需要对其解码,方便进一步的解析
#这一小段代码的作用是将网站的信息爬取下来
print(html)#输出查看爬取到的信息

Response对象

Response对象提供了如下方法:
read()、readline()、fileno()、close():这些方法的使用方式和文件对象完全一样。
info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息。
getcode():返回HTTP状态码。200表示请求成功。
geturl():返回请求的URL。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭动手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值