一、下载一只猫
import urllib.request response = urllib.request.urlopen("http://cdn.duitang.com/uploads/item/201111/24/20111124222137_wHYwc.jpg") cat_img = response.read() with open(\'cat_0.jpeg\', \'wb\') as f: f.write(cat_img)
urlopen()中的url可以是string,也可以是request object,因此可以是:
import urllib.request req = urllib.request.Request("http://cdn.duitang.com/uploads/item/201111/24/20111124222137_wHYwc.jpg") response = urllib.request.urlopen(req) cat_img = response.read() with open(\'cat_0.jpeg\', \'wb\') as f: f.write(cat_img)
response.geturl()得到url地址
response.info()得到HTTPMessage对象,可以通过print()得到head信息
response.getcode()得到服务器的状态码200(正常响应)
二、利用有道词典翻译文本
<审查元素>network——preview,找到需要的path
然后切到headers——关注general、request headers(客户端发送请求的headers,服务端可以在此判断是否人为访问,User-Agent)python url/3.4、From Data、
urlopen()中data为None以get提交,有参数用post方式提交,data参数必须是一个标准格式application/x-www-form-urlencoded,可以用urllib.parse.urlencode()来将字符串转化为这个格式
import urllib.request import urllib.parse import json url = \'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=http://fanyi.youdao.com/\' data = { \'i\':\'china\', \'from\':\'AUTO\', \'to\':\'AUTO\', \'smartresult\':\'dict\', \'sign\':\'cf928c9af5dc3731276ad09db002e052\', \'client\':\'fanyideskweb\', \'salt\':\'1494249290636\', \'doctype\':\'json\', \'version\':\'2.1\', \'keyfrom\':\'fanyi.web\', \'action\':\'FY_BY_CLICKBUTTON\', \'typoResult\':\'true\' } data = urllib.parse.urlencode(data).encode(\'utf8\') response = urllib.request.urlopen(url, data) html = response.read().decode(\'utf-8\') print(html) #发现是json格式 target = json.loads(html) print(target) #打印还原的json
但是当客户端码是python,并且当一个ip访问太多后,服务器会拉黑ip!