今天把第一节urllib.request看完了,感觉对如何用python模拟浏览器申请网页文档有了一个大概的了解。但感觉离入门还差的远
练习8 使用proxy——handler 创建代理
# from urllib.error import URLError
# from urllib.request import ProxyHandler,build_opener
# proxy_handler = ProxyHandler({
# 'http': 'http://127.0.0.1:9743',
# 'https': 'https://127.0.0.1:9743'
# })
# opener = build_opener(proxy_handler)
# try:
# response = opener.open('https://www.baidu.com')
# print(response.read().decode('utf-8'))
# pass
# except URLError as e:
# print(e.reason)
# pass
下面一个练习是关于获取网页coockies的,一直对于cookie的概念很模糊,特意维基了一下:
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
更详细的解释见https://zh.wikipedia.org/wiki/Cookie
练习9 使用http.cookiejar获得网页的cookie
# import http.cookiejar,urllib.request
# cookies = http.cookiejar.CookieJar()
# handler = urllib.request.HTTPCookieProcessor(cookies)
# opener = urllib.request.build_opener(handler)
# response = opener.open('http://www.baidu.com')
# for item in cookies:
# print(item.name+'='+item.value)
练习10 把cookie导出到文件,注意生成coockie时候要使用MozillaCookieJar或LWPCookieJar
导出来的文件根本看不懂。
# import http.cookiejar,urllib.request
# filename = 'cookie1.txt'
# cookies = http.cookiejar.LWPCookieJar(filename)
# handler = urllib.request.HTTPCookieProcessor(cookies)
# opener = urllib.request.build_opener(handler)
# response = opener.open('http://www.baidu.com')
# cookies.save(ignore_discard = True,ignore_expires = True)
练习11 读取之前导出到文件的cookie
浏览器保存用户的用户名及密码以便下次登陆就用到了这个功能
# import http.cookiejar,urllib.request
# cookie = http.cookiejar.LWPCookieJar()
# cookie.load(filename='cookie1.txt',ignore_discard=True,ignore_expires=True)
# handler = urllib.request.HTTPCookieProcessor(cookie)
# opener = urllib.request.build_opener(handler)
# response = opener.open('http://www.baidu.com')
# print(response.read().decode('utf-8'))