Python爬虫(2):urllib库

爬虫常用库urllib

注:运行环境为PyCharm

urllib是Python3内置的HTTP请求库
urllib.request:请求模块
urllib.error:异常处理模块
urllib.parse:url解析模块
urllib.robotparse:robot.txt解析模块

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

url:请求网址

data:请求时需要发送的数据

timeout:超时设置

from urllib import request

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

当爬去一些反爬网站时,需要适当地增加请求头进行请求要用到Request对象。

2、error.URLError:url的一些问题,这个异常只有一个reason属性

     error.HTTPError:error.URLError的子类,在与上面的混合使用时需要将这个异常放到前面,这个异常是一些请求错误,有三个方法,.reason(), .code(), .headers(),在捕捉异常时通常先使用这个

3、urllib.parse.urlparse(url,scheme=‘’,allow_fragments=True)

     解析url

from urllib import request, parse
# 解析url
print(parse.urlparse('https://movie.douban.com/'))
print(parse.urlparse('https://movie.douban.com/', scheme='http'))
print(parse.urlparse('movie.douban.com/', scheme='http'))

结果:
ParseResult(scheme='https', netloc='movie.douban.com', path='/', params='', query='', fragment='')
ParseResult(scheme='https', netloc='movie.douban.com', path='/', params='', query='', fragment='')
ParseResult(scheme='http', netloc='', path='movie.douban.com/', params='', query='', fragment='')

反解析url

from urllib import parse
# 将列表元素拼接成url
url = ['http', 'www', 'baidu', 'com', '1554384640', 'f2b8183cd1e469a'] # 这里至少需要6个元素
print(parse.urlunparse(url))

结果:
http://www/baidu;com?1554384640#f2b8183cd1e469a

 

 

参考资料:

1、Python爬虫常用库之urllib详解|日常学python:https://mp.weixin.qq.com/s?src=11&timestamp=1554382467&ver=1526&signature=fJepqC9Qswpe2fWjtxmNrUth3gX5vZ0jPBQyzBeqQMhhfbj462b*Jk0WPXYUjXP6dUP63tU8G0HqPV9sDWllrGVr0frRAERQE4fY-6oqE5ZZxUXRnIW508nhNQdnQ*be&new=1

 

转载于:https://www.cnblogs.com/finsomway/p/10657208.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值