python3的urllib2
① python爬虫-常用的请求方式
爬虫的请求方式常用的有urllib和requests,前者是自带模块,后者需要我们自己进行安装。
安装requests模块
注意:在 python2 中,urllib 被分为urllib,urllib2等,在python3中我们直接使用urllib
虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 "HTTP for Humans",说明使用更简洁方便。
② python3.4没有 urllib2
py3版本之后urllib模块合并为urllib.request了。
原先的一些函数方法变化不大,只是多加了一个request而已。比如urllib.request.urlopen()
参考:http://www.cnblogs.com/Lands-ljk/p/5447127.html
③ python3中怎么没有urllib2
urllib2是python2自带的模块,不需要下载。
urllib2在python3.x中被改为urllib ,你直接输入urllib就可以了
>>>importurllib
下图是我电脑上的Python3.5版本的
④ python3中使用urllib进行https请求
刚入门python学习网络爬虫基础,我使用的python版本是python3.6.4,学习的教程参考 Python爬虫入门教程
python3.6的版本已经没有urllib2这个库了,所以我也不需要纠结urllib和urllib2的区别和应用场景
参考这篇官方文档 HOWTO Fetch Internet Resources Using The urllib Package 。关于http(s)请求一般就get和post两种方式较为常用,所以写了以下两个小demo,url链接随便找的,具体场景具体变化,可参考注释中的基本思路
POST请求:
GET请求:
注意,
使用ssl创建未经验证的上下文,在urlopen中需传入上下文参数
urllib.request.urlopen(full_url, context=context)
这是Python 升级到 2.7.9 之后引入的一个新特性,所以在使用urlopen打开https链接会遇到如下报错:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
所以,当使用urllib.urlopen打开一个 https 链接时,需要先验证一次 SSL 证书
context = ssl._create_unverified_context()
或者或者导入ssl时关闭证书验证
ssl._create_default_https_context =ssl._create_unverified_context
⑤ python3中为什么urlparse.urljoin没有了
python3对urllib和urllib2进行了重构,拆分成了urllib.request, urllib.response, urllib.parse, urllib.error等几个子模块,这样的架构从逻辑和结构上说更加合理。
urljoin现在对应的函数是urllib.parse.urljoin
⑥ python urllib2模块 在哪里下载
urllib2是python自带的模块,不需要下载。
urllib2在python3.x中被改为urllib.request
⑦ python3中urllib2找不到怎么办
在python2中使用的urllib2库在python3中不存在怎么解决呢?在python3中是urllib.request.urlopen代替了urllib2.
最后打印结果