爬虫day2 爬虫网络模块

一.urllib简介

  1. 为什么要学urllib
  • 有的一些比较老的爬虫项目就是用的是urllib
  • 我们在做一些爬虫的时候往往需要requests+urllib一起使用
  • python内置的模块
  • urllib在某些方面还是非常的强大
    urllib是python内置的一个爬虫网络请求模块

二.urllib.request 使用

1 创建请求对象 urllib.request.Request() 构建user-agent
2 发起请求获取响应对象 urllib.request.urlopen()
3 读取响应对象的内容 read().decode(‘utf-8’) bytes --> str
例子:

import urllib.request

url = "https://www.baidu.com/"
headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.50'
}

# 1,创建请求对象urllib.request.Request()
req = urllib.request.Request(url, headers=headers)
# 2 , 获取响应对象urllib.request.urlopen()
res = urllib.request.urlopen(req)
# 3,读取响应对象中的内容read().decode('utf-8')
html = res.read().decode('utf-8')

print(html)

三.urllib.parse 使用

我们的思路是 如果我请求的url地址中出现了中文字样,我们的思路就是把中文转换成%+十六进制的样式

第一种方式 urllib.parse.urlencode(dict) 转换成了十六进制+%
第二种方式 urllib.parse.quote(str)

补充 反爬的小细节

如果以后遇到了 url 里面的数据包含有 %+十六进制 这样的url我们是无法进行一个正常的请求

解决办法 通过 parse.unquote() 来进行处理

import urllib.parse

url02 = 'http%3A%2F%2Fshp%2Eqpic%2Ecn%2Fishow%2F2735012617%2F1611652290%5F84828260%5F8059%5FsProdImgNo%5F6%2Ejpg%2F200'
r = url02
result = urllib.parse.unquote(r)
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值