#下载一张图片
import urllib.request as ur
response = ur.urlopen("http://placekitten.com/g/500/600")
cat_img = response.read()
with open('cat_500_600.jpg','wb') as f:
f.write(cat_img)
#模拟有道词典翻译:
import urllib.request as ur
import urllib.parse as up
import json
while True:
#客户端输入内容
content = input("请输入要翻译的内容(字符q退出):")
if 'q' == content:
break
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
#客户端数据提交
data ={}
data['type']="Auto"
data["i"]=content
data["doctype"]="json"
data["xmlVersion"]="1.8"
data["keyfrom"]="fanyi.web"
data["ue"]="UTF-8"
data["typeResult"]="true"
#对data数据进行格式化,encode:unicode 转化为 utf-8 的形式
data = up.urlencode(data).encode("utf-8")
response = ur.urlopen(url,data)
#decode:将utf-8 的形式解码为 unicode 形式
html = response.read().decode("utf-8")
#转化为字典
target = json.loads(html)
print("翻译的结果:%s"%target["translateResult"][0][0]["tgt"])
----------------
>>>
请输入要翻译的内容:中国
翻译的结果:China
#模拟浏览器翻译
import urllib.request as ur
import urllib.parse as up
import json
#客户端输入内容
content = input("请输入要翻译的内容(字符q退出):")
#模拟浏览器
head = {}
head["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
#客户端数据提交
data ={}
data['type']="Auto"
data["i"]=content
data["doctype"]="json"
data["xmlVersion"]="1.8"
data["keyfrom"]="fanyi.web"
data["ue"]="UTF-8"
data["typeResult"]="true"
#对data数据进行格式化,encode:unicode 转化为 utf-8 的形式
data = up.urlencode(data).encode("utf-8")
req = ur.Request(url,data,head)
response = ur.urlopen(req)
#decode:将utf-8 的形式解码为 unicode 形式
html = response.read().decode("utf-8")
#转化为字典
target = json.loads(html)
print("翻译的结果:%s"%target["translateResult"][0][0]["tgt"])
#添加的浏览器头部
req.headers
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'}
修改headers
通过Request 的headers参数
通过Request.add_header()
代理
#查询代理IP是否成功
import urllib.request as ur
import random
url = "http://www.whatismyip.com.tw"
#ip集合
iplist =["124.240.187.77:80","180.166.112.47:8888","223.19.230.181:80"]
proxy_support = ur.ProxyHandler({"http":random.choice(iplist)})
#创建一个opener
opener = ur.build_opener(proxy_support)
#添加浏览器头部
opener.addheaders =[("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36")]
#安装opener
ur.install_opener(opener)
#验证代理ip
response = ur.urlopen(url)
html = response.read().decode("utf-8")
print(html)
抓取图片
# coding: UTF-8
import urllib.request
import os
#url请求
def url_open(url):
#获取请求头
req = urllib.request.Request(url)
#模拟浏览器访问
req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36")
#得到响应对象
response = urllib.request.urlopen(req)
html = response.read()
return html
#获取当前页码
def get_page(url):
#获取页面中整个html代码字符
html = url_open(url).decode("utf-8")
#得到当前面码,通过查找字符串的开始和结束来截取 当页url 的页码
a = html.find("current-comment-page") + 23
b = html.find("]",a)
return html[a:b]
#当前页码
print(html[a:b])
#查找当前url图片地址列表
def find_imgs(url):
#获取页面中整个html代码字符
html = url_open(url).decode("utf-8")
#图片地址列表
img_addrs = []
a = html.find("img src=")
while a != -1:
#网页地址不可能超过255
b = html.find(".jpg",a, a + 255)
if b != -1:
img_addrs.append(html[a + 9 : b + 4])
else:
b = a + 9
#开始找下一个图片地址,也就是从找到的第一个结束后开始的们置
a = html.find("img src=",b)
return img_addrs
# for each in img_addrs:
# print(each)
#保存图片
def save_img(folder,img_addrs):
for each in img_addrs:
#获取图片名子,从后往前找
filenanme = each.split('/')[-1]
#打开每一个图片的地址,获取图片,并存入文件夹中
img = url_open(each)
with open(filenanme,'wb') as f:
f.write(img)
def download_mm(folder="mm",pages=10):
#创建文件夹
os.mkdir(folder)
#进入文 件夹
os.chdir(folder)
#进入当前页面
url = "http://jandan.net/ooxx/"
#根据url 得到当前第一页
page_num =int(get_page(url))
#获取前10页的图片
for i in range(pages):
#根据浏览发现下一页,是前一页减 1
page_num -= i
#进入下一页的图片地址
page_url = url + 'page-'+str(page_num)+"#comments"
#将当前页面的所有图片地址存入一个列表中
img_addrs = find_imgs(page_url)
save_img(folder,img_addrs)
#调用主函数
if __name__ == "__main__":
download_mm()