# 知识点补充:
# 1) None:
a = None
if a:
print("非None")
else:
print("None")
if a is not None:
print("非None")
else:
print("None")
# None
# None
a = ''
if a:
print("非空")
else:
print("空")
if a != '':
print("非空")
else:
print("空")
# 空
# 空
# 2) global 的用法:在函数内引用 列表,集合,元组,字典的时候,不需要使用 global
l=[1,2,3]
s=set(l)
dic={'k1':'v1'}
t=(1,2,3) # 不可变类型
v='123'
def test():
l.append(4)
s.add(5)
dic['k2']='v2'
t2=list(t)
print(t2) # [1, 2, 3]
global v
v=v+'4'
test()
print(l) # [1, 2, 3, 4]
print(s) # {1, 2, 3, 5}
print(dic) # {'k1': 'v1', 'k2': 'v2'}
print(v) # 1234
# 3) 使用 urlparse解析 url:
# 我们通过parsed的各个属性来访问不同的部分
from urllib.parse import urlparse
url='https://www.cnblogs.com/Alexephor/p/11431950.html'
parsed = urlparse(url) # 将字符串进行解析
print('scheme :'+ parsed.scheme) #网络协议 https
print('netloc :'+ parsed.netloc) #服务器位置(也可呢能有用户信息) www.cnblogs.com
print('path :'+ parsed.path) #网页文件在服务器中存放的位置 /Alexephor/p/11431950.html
print('params :'+ parsed.params) #可选参数
print('query :'+ parsed.query) #连接符(&)连接键值对
print('fragment:'+ parsed.fragment) #拆分文档中的特殊猫
# print('username:'+ parsed.username) #用户名
# print('password:'+ parsed.password) #密码
print('hostname:'+ parsed.hostname) #服务器名称或者地址 www.cnblogs.com
print('port :', parsed.port) #端口(默认是80) None
[1, 2, 3]
[1, 2, 3, 4]
{1, 2, 3, 5}
{'k1': 'v1', 'k2': 'v2'}
1234
scheme :https
netloc :www.cnblogs.com
path :/Alexephor/p/11431950.html
params :
query :
fragment:
hostname:www.cnblogs.com
port : None
# 爬取内链和外链的练习请见 权威指南 的随书代码