一.

from urllib import request

res=request.urlopen('https://www.douban.com')
data = res.read()
print(data.decode('utf-8'))
通过以上代码可以获取到豆瓣网页源码。

1.
urllib提供的功能就是利用程序去执行各种HTTP请求。如果要模拟浏览器完成特定功能,需要把请求伪装成浏览器。伪装的方法是先监控浏览器发出的请求,再根据浏览器的请求头来伪装,User-Agent头就是用来标识浏览器的。
2.req=request.urlopen('https://www.douban.com')

首先我们调用的是request模块里面的urlopen方法,传入一个URL,这个网址是豆瓣首页,协议是HTTP协议,当然你也可以把HTTP换做FTP,FILE,HTTPS 等等,只是代表了一种访问控制协议,urlopen一般接受三个参数,它的参数如下:

urlopen(url, data, timeout)

第一个参数url即为URL(必须传入),第二个参数data是访问URL时要传送的数据(非必须),第三个timeout是设置超时时间(非必须)

第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT

第一个参数URL是必须要传送的,在这个例子里面我们传送了豆瓣的URL,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面。

3.

data = res.read()

res对象有一个read方法,可以返回获取到的网页内容。如果不通过read()方法而直接print res对象,会打印出该对象的描述,而不是网页代码。