爬虫入门实例七

import urllib.request
import urllib.parse
import string

def get_method_params():
    url = "http://www.baidu.com/s?wd="
    name = "美女"
    #name = {
    #           "wd":"中文"
    #      }
            #字典传参
    #str_params = urllib.parse.urlencode(d)
    #final_url = url + str_params
    final_url = url + name
    #转译含有汉字的网址
    change_url = urllib.parse.quote(final_url,safe=string.printable)
    r = urllib.request.urlopen(change_url)
    print(r)#返回一个请求对象
    #UnicodeEncodeError: 'ascii' codec can't encode
    # characters in position 10-11: ordinal not in range(128)
    #若name内容是英文字符串没有问题,中文字符有问题
    # 使用safe=string.printable
    print(urllib.parse.quote('afe||*beff/c')) #未编码斜线,但是编码其他符号

    print(urllib.parse.quote_plus('afdsdsf&b/c'))  #编码了斜线,也编码了其他符号

    print(urllib.parse.unquote('9+2'))  #不解码加号
    #'9+2'
    print(urllib.parse.quote_plus('9+2'))  #把加号解码为空格
    #quote()输出和quote_plus一样
    #9%2B2
    data = r.read().decode()
    # print(data)
    print(type(data))
    # 字符串类型
    # 若没有decode(),是字节串。
    with open("02-get_params.html","w",encoding="utf-8") as f:
        f.write(data)



get_method_params()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值