urllib库的使用

目录

1、urllib的使用

2、一个类型和六个方法

 2.1、一个类型

 2.2、六个方法

 2.3、下载图像、视频

3、请求对象的定制

 3.1、编解码

  3.1.1、get请求方式

  3.1.2、Post请求方式

 3.2、ajax请求

  3.2.1、ajax的get请求

  3.2.2、ajax的post请求

 3.3、cookie登录

4、使用代理

 4.1、handler代理

 4.2、handler代理IP地址修改

 4.3、代理池


1、urllib的使用

 urllib.request.urlopen() 模拟浏览器向服务器发送请求:

 1)定义需要访问的url地址

 2)模拟浏览器向服务器发送请求

 3)获取响应的页面源码

# 使用urllib获取百度首页源码
import urllib.request

# 1、定义一个url 需要访问的地址
url = 'http://www.baidu.com'

# 2、模拟浏览器向服务器发送请求 response就是响应
response = urllib.request.urlopen(url)

# 3、获取响应中的页面源码
# read方法 返回的是字节形式的二进制数据 -> 需要转换为字符串
# 解码:二进制->字符串 decode('编码的格式')
content = response.read().decode('utf-8')

# 4、打印数据
print(content)

2、一个类型和六个方法

 2.1、一个类型

  1)代码:

# 使用urllib获取百度首页源码
import urllib.request

# 1、定义一个url 需要访问的地址
url = 'http://www.baidu.com'

# 2、模拟浏览器向服务器发送请求 response就是响应
response = urllib.request.urlopen(url)

# 一个类型和六个方法
print(type(response))

  2)输出:

  3)response的数据类型是HttpResponse:

  • 字节‐‐>字符串 解码decode
  • 字符串‐‐>字节 编码encode

 2.2、六个方法

  1. read() 字节形式读取二进制 扩展:rede(5)返回前几个字节
  2.  readline() 只能 读取一行

  3. readlines() 一行一行读取 直至结束

  4. getcode() 获取状态码 (判断书写逻辑是否正确,返回200表示正常)

  5. geturl() 获取url地址

  6. getheaders() 获取header 

# 使用urllib获取百度首页源码
import urllib.request

# 1、定义一个url 需要访问的地址
url = 'http://www.baidu.com'

# 2、模拟浏览器向服务器发送请求 response就是响应
response = urllib.request.urlopen(url)

# 按照一个字节一个字节的方式进行读取
content = response.read()

# 返回5个字节
content = response.read(5)

# 读取一行数据
content = response.readline()

# 按照一行一行的方式进行读取
content = response.readlines()

# 返回状态码 如果是200证明没有错
print(response.getcode())

# 返回url地址
print(response.geturl())

# 获取响应头等状态信息
print(response.getheaders())

 2.3、下载图像、视频

import urllib.request

# 下载网页
url_page = 'http://www.baidu.com'

# url代表的是下载的路径 filename文件的名字
urllib.request.urlretrieve(url_page, 'baidu.html')

# 下载图片
url_img = 'https://img0.baidu.com/it/u=1309359181,3567527426&fm=253&fmt=auto&app=138&f=JPEG?w=281&h=499'

urllib.request.urlretrieve(url_img, 'lisa.jpg')

# 下载视频
url_video = 'https://vd3.bdstatic.com/mda-kjtx64epufgk8zw5/sc/cae_h264_nowatermark/1604104149/mda-kjtx64epufgk8zw5.mp4?v_from_s=hkapp-haokan-hnb&auth_key=1659543870-0-0-4dd2d6b9e96b8193a5e2ec3a86177452&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=3270589526&vid=6647036806223333961&abtest=103747_2-103890_2&klogid=3270589526'

urllib.request.urlretrieve(url_video, 'lisa.mp4')

3、请求对象的定制

UA介绍:User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统 及版本、CPU 类型、浏览器及版本。浏览器内核、浏览器渲染引擎、浏览器语言、浏览器插件等

UA反爬虫:在进行爬虫时候,程序模仿浏览器操作,但是反爬虫机制在响应爬虫请求时候需要进行UA识别,这时候就需要将UA参数传进我们的爬虫程序中

import urllib.request
 
url = 'https:
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值