python_实践

#下载一张图片
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()    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值