py 爬虫入门 记 urlopen() 函数

urlopen() 函数。
urllib.request.urlopen(
url,data=None,[timeout, ]*,cafile=None,capath=None,cadefault=False,context=None)
**url 参数:**URL的字符串、一个urllib.request对象
**data参数:**data用来指明发往服务器请求中的额外的信息,
1.data必须是一个字节数据对象(Python的bytes object)
2.data必须符合标准the standard application/x-www-form-urlencoded format,怎么得到这种标准结构的data呢?使用urllib.parse.urlencode()将自定义的data转换成标准格式,而这个函数所能接收的参数类型是pyhon中的mapping object(键/值对,如dict) or a sequence of two-element tuples(元素是tuple的列表)。
3.data也可以是一个可迭代的对象,这种情况下就需要配置response对象中的Conten-length,指明data的大小。
4.data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。


Use http://www.someproxy.com:3128 for HTTP proxying

proxies = {‘http’: ‘http://www.someproxy.com:3128‘}
filehandle = urllib.urlopen(some_url, proxies=proxies)

Don’t use any proxies

filehandle = urllib.urlopen(some_url, proxies={})

Use proxies from environment - both versions are equivalent

filehandle = urllib.urlopen(some_url, proxies=None)
filehandle = urllib.urlopen(some_url)

cafile、capath、cadefault 参数:用于实现可信任的CA证书的HTTP请求。(基本上很少用)
context参数:实现SSL加密传输。(基本上很少用)
打开URL所指示的网络上的对象->返回一个类文件对象。
该对象拥有以下方法:read(),readline(),readlines(),fileno(),close(),info(),getcode() 和geturl(),同时也支持iterator。

**read():**response = urllib.request.urlopen(“https://www.baidu.com“) -> print(response.read().decode(“utf-8”))

geturl():重定向时,可用geturl()获得真实的url。
getcode():提交的URL不是一个HTTP的URL,那么getcode()方法返回None,否则返回HTTP响应发送回来的HTTP状态码。

你可能感兴趣的:(爬虫入门小记)