马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. HTTP 是基于请求-响应的模式, 发出请求的永远是客户端,做出响应的永远是服务端。在客户端和服务器之间进行请求-响应时,最常用的是哪两种方法为GET 和 POST
2. 在网页的控制台界面中的network中记录了客户端与服务器之间的请求和响应信息, 其中在Headers中可以查找相应的信息
3. urllib.request.urlopen(url) 实际上是先将 urllib.request.Request(url)类实例化, 再将对象传入urlopen(): >>> response = urllib.request.urlopen('http://www.baidu.com')
就等于
>>> req = urllib.request.Request('http://www.baidu.com')
>>> response = urllib.request.urlopen(req)
4. response对象有三种方法:
1. geturl(): 返回所检索的资源的URL
2. info(): 返回页面的meta信息
3. getcode(): 返回响应的HTTP状态代码
5. urlopen() 方法的 timeout 参数用于设置连接的超时时间,单位是秒
6. 对于http headers中的From Data下的内容即为urlopen(url, data)中的data元素, 当传入data元素时, HTTP 的请求就是使用 POST 方式, 不传入data元素(默认为NULL)时, HTTP 的请求就是使用 GET 方式, data为一个字典, 且需要用特定的格式, 需用 urllib.parse.urlencode(data).encode('utf-8')进行编码(不一定是'utf-8')
7. json: JSON 是一种轻量级的数据交换格式,就是用字符串把 Python 的数据结构封装起来,便与存储和使用, 导入json模块, 使用json.loads(f)可以将用json封装的数据结构转换成python的数据结构
8. 在http Headers中的Request Headers中User-Agent 属性记录了你所使用的浏览器类型、操作系统、浏览器内核等信息的标识
附一个有道翻译的练习:
import urllib.request
import urllib.parse
import json
content = input("请输入需要翻译的内容: ")
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1532858738349'
data['sign'] = '27e27410c327728d3532188293507c13'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'True'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')
target = json.loads(html)
print('翻译结果: %s' % (target['translateResult'][0][0]['tgt']))
|