Python爬虫1.0——urllib库部分基础操作
程序员文章站
2022-05-18 21:25:53
...
本文主要介绍urllib库一些函数的用法
1、使用urlopen函数进行请求
from urllib import request
res = request.urlopen('http://www.baidu.com')#打开请求,默认用的post
print(res.read())
结果展示:
在上面获得的内容下,也可以如下这样选择获得一些 内容
#按部分读取请求
res.read(10)
res.readline()
res.readlines()
#获取请求的状态码
res.getcode()
2、使用urlretrieve函数下载资源
使用本函数访问百度,并且下载到将内容保存的本地的baidu.html文件(这里保存到了项目根目录下)
from urllib import request
request.urlretrieve('http://www.baidu.com', 'baidu.html')
结果展示:
3、使用urlencode函数进行编码
直接百度搜索刘德华的话会是这个链接:https://www.baidu.com/s?ie=UTF-8&wd=刘德华,下面展示如何对url编码
from urllib import parse
params = {"wd":"刘德华"}
str = parse.urlencode(params)
url = 'https://www.baidu.com/s?ie=UTF-8&'+str
print(url)
结果展示
https://www.baidu.com/s?ie=UTF-8&wd=%E5%88%98%E5%BE%B7%E5%8D%8E
4、使用parse_qs函数进行解码
from urllib import parse
params = {"name":"张三","age":"20"}
params = parse.urlencode(params)#编码
print(params)
qs = parse.parse_qs(params)#解码
print(qs)
结果展示:
name=%E5%BC%A0%E4%B8%89&age=20
{'name': ['张三'], 'age': ['20']}
5、使用urlparse解析url
from urllib import parse
url = 'http://www.baidu.com/s?wd=python&username=abc#1'
result = parse.urlparse(url)#解析上面的url
print(result)
#选择性输出结果
print('输出scheme:',result.scheme)
print('输出netloc:',result.netloc)
print('输出path:',result.path)
print('输出params:',result.params)
print('输出query:',result.query)
print('输出fragment:',result.fragment)
结果展示:
ParseResult(scheme='http', netloc='www.baidu.com', path='/s', params='', query='wd=python&username=abc', fragment='1')
输出scheme: http
输出netloc: www.baidu.com
输出path: /s
输出params:
输出query: wd=python&username=abc
输出fragment: 1