【导读】记录学习爬虫的过程
【主题】将python爬取到网页信息中的中文显示出来
【代码】
from urllib import request
url = r"http://www.baidu.com/"
#'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子
#发送请求,获取响应信息
reponse = request.urlopen(url).read().decode()
print(reponse)
【分析】
1.urlopen()方法
urllib.request.urlopen()函数用于实现对目标url的访问。
函数原型如下:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url: 需要打开的网址
data:Post请求提交的数据
timeout:设置网站的访问超时时间
函数参数介绍
- url 参数:目标资源在网路中的位置。可以是一个表示URL的字符串(如:http://www.pythontab.com/);也可以是一个urllib.request对象
- data参数:data用来指明发往服务器请求中的额外的参数信息(如:在线翻译,在线答题等提交的内容),data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。
- timeout:设置网站的访问超时时间
- cafile、capath、cadefault 参数:用于实现可信任的CA证书的HTTP请求。
- context参数:实现SSL加密传输。
【返回方法】
urlopen返回对象提供方法:
1.read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作
2.info():返回HTTPMessage对象,表示远程服务器返回的头信息
3.getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
4.geturl():返回请求的url
【注意】
1.直接用urllib.request模块的urlopen()获取页面,page的数据格式为bytes类型,显示为二进制,需要decode()解码,转换成str类型。
2.from urllib.request import urlopen
urlopen(‘xxx’)
或者
from urllib import request
request.urlopen(‘xxx’)