目录
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、六个方法
- read() 字节形式读取二进制 扩展:rede(5)返回前几个字节
readline() 只能 读取一行
readlines() 一行一行读取 直至结束
getcode() 获取状态码 (判断书写逻辑是否正确,返回200表示正常)
geturl() 获取url地址
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: