在使用爬虫时经常遇到各种需要转义的地方,总结了各种转义的方式分享给大家
代码如下:
# -*- coding:utf-8 -*-
import html
from urllib.parse import urlparse
from urllib.parse import urljoin
from urllib.parse import urlencode, parse_qs, parse_qsl
from urllib.parse import quote, unquote
__author__ = 'Evan'
print('返回一个ParseResult类型的对象: ', urlparse('http://www.baidu.com/index.html;user?id=5#comment'))
print('合并两个字符串组合成一个完整的URL: ', urljoin('http://www.baidu.com', 'index.html'))
params = {
'name': 'Evan',
'id': '77'
}
print('将字典序列化为Get请求参数: ', 'http://www.baidu.com?' + urlencode(params))
print('将Get请求参数反序列化为字典: ', parse_qs('http://www.baidu.com?name=Evan&id=77'))
print('将Get请求参数反序列化为列表: ', parse_qsl('http://www.baidu.com?name=Evan&id=77'))
print('将中文转化为URL编码: ', 'http://www.baidu.com?' + quote('年龄'))
print('将URL编码转化为中文: ', unquote('http://www.baidu.com?%E5%B9%B4%E9%BE%84'))
print('HTML格式反转义成字符: ', html.unescape('https://127.0.0.1/report'))
执行结果:
返回一个ParseResult类型的对象: ParseResult(scheme='http', netloc='www.baidu.com', path='/index.html', params='user', query='id=5', fragment='comment')
合并两个字符串组合成一个完整的URL: http://www.baidu.com/index.html
将字典序列化为Get请求参数: http://www.baidu.com?name=Evan&id=77
将Get请求参数反序列化为字典: {'http://www.baidu.com?name': ['Evan'], 'id': ['77']}
将Get请求参数反序列化为列表: [('http://www.baidu.com?name', 'Evan'), ('id', '77')]
将中文转化为URL编码: http://www.baidu.com?%E5%B9%B4%E9%BE%84
将URL编码转化为中文: http://www.baidu.com?年龄
HTML格式反转义成字符: https://127.0.0.1/report