Urllib

Urllib

urllib库的使用

urllib的基本使用

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

# (1)定义一个url 就是你要访问的地址
url = 'http://www.baidu.com/'

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

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

# (4)打印数据
print(content)

一个类型和六个方法

import urllib.request

url = 'http://www.baidu.com/'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 一个类型
# response是HTTPResponse的类型
# print(type(content))

# 六个方法

# 按照一个一个字节全部读取出来
# content = response.read()
# print(content)

# 返回对应数量的字节
# content = response.read(5)
# print(content)

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

# content = response.readlines()
# print(content)

# 返回状态码,如果是200.就证明这段代码没有错误
# print(response.getcode())

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

# 获取的是一个状态信息
print(response.getheaders())

urllib下载

import urllib.request

# 下载网页
# url_page = 'http://www.baidu.com/'
# url代表的是下载的路径 filename文件的名字
# 在python中变量的名字 也可以直接写值
# urllib.request.urlretrieve(url_page, 'baidu.html')

# 下载图片
# url_img = 'https://img2.baidu.com/it/u=2394291683,1450087063&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500'
# urllib.request.urlretrieve(url=url_img, filename='02.png')
# 下载视频
url_video = 'https://vd2.bdstatic.com/mda-picyuf5c6sekhy5c/720p/h264/1694646650126259454/mda-picyuf5c6sekhy5c.mp4?v_from_s=hkapp-haokan-hbf&auth_key=1694693831-0-0-c5c5226fc7bc849293be0dac5882fa0b&bcevod_channel=searchbox_feed&pd=1&cr=2&cd=0&pt=3&logid=1031001171&vid=1074113355220740733&klogid=1031001171&abtest=112751_3'
urllib.request.urlretrieve(url_video, 'test.mp4')

请求对象的定制

为了解决反爬手段UA

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

url = 'https://www.baidu.com'

# url组成
# http/https     www.baidu.com    80/443
#   协议             主机            端口号     路径        参数        锚点
# http   80
#  https  443
#  mysql  3306
#  oracle 1521
#  redis  6379
#  mongodb  27017

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
# 因为urlopen方法中不能存储字典,所以headers不能传递进去
# 请求对象的定制
# 注意:因为参数顺序的问题,不能直接写url和headers 中间还有data 所以我们用关键字传参
request = urllib.request.Request(url=url, headers=headers)

response = urllib.request.urlopen(request)
content = response.read().decode('utf8')
print(content)

你可能感兴趣的:(Python爬虫,python)