python_实践
2015-09-07 16:55
344 查看
#下载一张图片 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()
相关文章推荐
- Python+OpenCV学习(4)---图像梯度及边缘检测
- Python学习写一小程序,从某一目录下所以文件中查询某字段,并显示文件名和所在行
- python注释
- Python中的else,不只是else
- Python---tkinter之Text()
- python中多行处理
- python 中list语法
- python 发送邮件
- [LeetCode]题解(python):003-Longest Substring Without Repeating Characters
- python生成随机数
- Python编辑器--Ulipad
- python-数据类型
- python缩进
- xpath: Python网页爬虫定位辅助利器
- [LeetCode]题解(python):002-Add Two Numbers
- python标识符
- [转] Python正则表达式指南
- Python 日期时间
- 欢迎使用CSDN-markdown编辑器
- 双击更新所有已安装的python模块