爬虫学习02

一、get传参

1.汉字报错

解释器ascii没有汉字,需要url汉字转码

urllib.parse.qoute safe="string.printable"

2.字典传参

例如

#get带有字典获取

import urllib.request
import urllib.parse
import string


def get_params():
    url = "http://www.baidu.com/s?"

    #字典
    params={
        "wd":"中文",
        "key":"zhang",
        "value":"san"
    }
    #字典传参
    str_params = urllib.parse.urlencode(params)
    print(str_params)
    final_url = url + str_params

    #将带有中文的url 转译成计算机可以识别的url
    end_url = urllib.parse.quote(final_url,safe=string.printable)
    response = urllib.request.urlopen(end_url)

    data = response.read().decode("utf-8")
    print(data)


get_params()

3.User-Agent

(1)模拟真实的浏览器发送请求

(2)request.add_header(动态的添加head数据)

(3)响应头 response.header

(4)创建request:urlib.request.Request(url)

拼接URL地址的三种方式

1.字符串相加

'https://www.baidu.com/s? '+ urlencode({'wd':''美女,‘pn’:'50'})

2.字符串格式化(占位符)

'https://www.baidu.com/s?%s '+ % urlencode({'wd':''美女},‘pn’:'50'})

3.format()方法

'https://www.baidu.com/s?{} '.format(urlencode({'wd':''美女},‘pn’:'50'}))

例如

【1】request-header

import urllib.request
def load_baidu():
    url="http://www.baidu.com"

    #创建请求对象
    request=urllib.request.Request(url)

    #请求网络数据
    response=urllib.request.urlopen(request)
    print(response)
#二进制的mac电脑默认解码方式是utf-8
windows的默认方式是gbk

    data=response.read().decode("utf-8")
    #响应头
    #print(response.headers)

    #获取请求头的信息
    request_headers=request.headers
    print(request_
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值