Python之urlib库的基本使用(填坑)

本文详细介绍了Python的urllib库在爬虫中的应用,包括urllib.request用于获取网页内容,urllib.error处理异常,urllib.parse解析URL,以及如何设置请求头、处理cookie和使用代理IP。通过示例代码展示了GET和POST请求、异常处理、URL解析和编码等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下为个人在学习Python过程中做的笔记总结之爬虫常用库urllib

前言

urlib库为python3的HTTP内置请求库

urilib的四个模块:

  1. urllib.request:用于获取网页的响应内容
  2. urllib.error:异常处理模块,用于处理异常的模块
  3. urllib.parse:用于解析url
  4. urllib.robotparse:用于解析robots.txt,主要用于看哪些网站不能进行爬取,不过少用

一、urllib.request

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

url:为请求网址
data:请求时需要发送的参数
**timeou**t:超时设置,在该时间范围内返回请求内容就不会报错

示例代码:

from urllib import request

 # 请求获取网页返回内容
 response = request.urlopen('https://book.douban.com/')
 # 获取网页返回内容
 print(response.read().decode('utf-8'))
 # 获取状态码
 print(response.status)
 # 获取请求头
print(response.getheaders())
# 对请求头进行遍历
for i, j in response.getheaders():
    print(i, '=', j)

可以使用上面的代码对一些网站进行请求了,但是当需要一些反爬网站时,这就不行了,这时我们需要适当地增加请求头进行请求,这时就需要使用复杂一点的代码了,这时我们需要用到Request对象。

代码示例:

# 请求头
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'}
requests = request.Request('https://book.douban.com/', headers=headers) # 加入自己的请求头更加接近浏览器
# 进行请求,把Request对象传入urlopen参数中
response = request.urlopen(requests)
print(response.read().decode('utf-8'))

这个我添加了请求头进行请求,使机械爬虫模拟浏览器发送请求,更加接近人为的浏览。可以对应一些反爬网站了。

如果网站需要进行登陆,这时需要用到post方法,用上面的也是可以的。代码如下:

 from urllib import request, parse
 # 使用post方法来进行模拟登陆豆瓣
 data = {
  'source': 'None',
  'redir': 'https://www.douban.com/',
  'form_email': 'user',
  'form_password': 'passwd',
  'remember': 'on',
  'login': '登录'}
 # 将data的字典类型转换为get请求方式
data = bytes(parse.urlencode(data), encoding='utf-8')
requests = request.Request('https://accounts.douban.com/login'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值