Python urllib
urllib库 包含以下几个模块
urllib.request # 打开和读取url
urllib.error # 包含urllib.request抛出的异常
urllib.parse # 解析url
urllib.robotparser #解析robots.txt文件
urllib.resquest
我们抓取网页一般需要对 headers(网页头信息)进行模拟,这时候需要使用到 urllib.request.Request 类:
from urllib.request import urlopen
import urllib
# 构建一个完整的请求
r=urllib.request.Request(url='https://www.baidu.com/')
# url:url 地址。
# data:发送到服务器的其他数据对象,默认为 None。
# headers:HTTP 请求的头部信息,字典格式。
# origin_req_host:请求的主机地址,IP 或域名。
# unverifiable:很少用整个参数,用于设置网页是否需要验证,默认是False。。
#method:请求方法, 如 GET、POST、DELETE、PUT等。
------------------------------------------------------
# urlopen 打开一个网址 发送请求
response = urlopen(r)
#read()读取全部内容可以指定长度:read(300)
#decode用来解码
print(response.read().decode('utf-8'))
print(response.status) #打印响应状态码
print(response.getheaders()) #打印响应的头信息
print(response.getheader('Server')) #打印响应头信息中的Server值
urllib.parse
urlencode quote unquote
from urllib import parse
# urlencode()可以将字典的键和值转换成url中携带的参数和值
str = {'wd':'爬虫'}
bh = parse.urlencode(str)
print(f'https://www.baidu.com/s?{bh}')
# 运行结果:https://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB
```python
from urllib import parse
# quote() 可以将字符串转换成url编码
word = "爬虫"
urlword = parse.quote(word)
print(urlword)
# 运行结果: %E7%88%AC%E8%99%AB
# unquote() 可以将url编码转换成字符串
urlword = "%E7%88%AC%E8%99%AB"
word = parse.unquote(urlword)
print(word)
# 运行结果: 爬虫
评论区