• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详解Python之urllib爬虫、request模块和parse模块

python 搞代码 4年前 (2022-01-09) 62次浏览 已收录 0个评论

文章目录

  • urllib
  • request模块
    • 访问URL
    • Request类
    • 其他类
  • parse模块
    • 解析URL
    • 转义URL
  • robots.txt文件

(免费学习推荐:python视频教程

urllib


urllib是Python中用来处理URL的工具包,源码位于/Lib/下。它包含了几个模块:用于打开及读写的urls的request模块、由request模块引起异常的error模块、用于解析urls的parse模块、用于响应处理的response模块、分析robots.txt文件的robotparser模块。

注意版本差异。urllib有3个版本:Python2.X包含urlliburllib2模块,Python3.X把urlliburllib2以及urlparse合成到urllib包中,而urllib3是新增的第三方工具包。若遇到"No module named urllib2"等问题几乎都是Python版本不同导致的。

urllib3是一个功能强大、条例清晰、用于HTTP客户端的Python库。它提供了许多Python标准库里所没有的特性:压缩编码、连接池、线程安全、SSL/TLS验证、HTTP和SCOCKS代理等。可以通过pip进行安装:pip install urllib3

也可以通过GitHub下载最新代码:

git clone git://github.com/shazow/urllib3.git
python setup.py install

urllib3参考文档:https://urllib3.readthedocs.io/en/latest/

request模块


urllib.request模块定义了身份认证、重定向、cookies等应用中打开url的函数和类。

再简单介绍下request包,该包用于高级的非底层的HTTP客户端接口,容错能力比request模块强大。request使用的是urllib3,它继承了urllib2的特性,支持HTTP连接保持和连接池,支持使用cookie保持会话、文件上传、自动解压缩、Unicode响应、HTTP(S)代理等。更多具体可参考文档http://requests.readthedocs.io。

下面将介绍urllib.request模块常用函数和类。

访问URL


一、urlopen()

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

该函数用于抓取URL数据,十分重要。带有如上所示的参数,除了URL参数外(字符串或Request对象)其余参数都有默认值。

①URL参数

from urllib import requestwith request.urlopen("http://www.baidu.<strong style="color:transparent">本文来源gao@daima#com搞(%代@#码网@</strong>com") as f:
    print(f.status)
    print(f.getheaders())#运行结果如下200[('Bdpagetype', '1'), ('Bdqid', '0x8583c98f0000787e'), ('Cache-Control', 'private'), ('Content-Type', 'text/html;charset=utf-8'), ('Date', 'Fri, 19 Mar 2021 08:26:03 GMT'), ('Expires', 'Fri, 19 Mar 2021 08:25:27 GMT'), ('P3p', 'CP=" OTI DSP COR IVA OUR IND COM "'), ('P3p', 'CP=" OTI DSP COR IVA OUR IND COM "'), ('Server', 'BWS/1.1'), ('Set-Cookie', 'BAIDUID=B050D0981EE3A706D726852655C9FA21:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'), ('Set-Cookie', 'BIDUPSID=B050D0981EE3A706D726852655C9FA21; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'), ('Set-Cookie', 'PSTM=1616142363; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'), ('Set-Cookie', 'BAIDUID=B050D0981EE3A706FA20DF440C89F27F:FG=1; max-age=31536000; expires=Sat, 19-Mar-22 08:26:03 GMT; domain=.baidu.com; path=/; version=1; comment=bd'), ('Set-Cookie', 'BDSVRTM=0; path=/'), ('Set-Cookie', 'BD_HOME=1; path=/'), ('Set-Cookie', 'H_PS_PSSID=33272_33710_33690_33594_33600_33624_33714_33265; path=/; domain=.baidu.com'), ('Traceid', '161614236308368819309620754845011048574'), ('Vary', 'Accept-Encoding'), ('Vary', 'Accept-Encoding'), ('X-Ua-Compatible', 'IE=Edge,chrome=1'), ('Connection', 'close'), ('Transfer-Encoding', 'chunked')]

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解Python之urllib爬虫、request模块和parse模块

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址