欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python爬虫1.0——urllib库部分基础操作

程序员文章站 2022-05-18 21:25:53
...

Python学习文章索引

本文主要介绍urllib库一些函数的用法

1、使用urlopen函数进行请求

from urllib import request
res = request.urlopen('http://www.baidu.com')#打开请求,默认用的post
print(res.read())

结果展示:
Python爬虫1.0——urllib库部分基础操作
在上面获得的内容下,也可以如下这样选择获得一些 内容

#按部分读取请求
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')

结果展示:
Python爬虫1.0——urllib库部分基础操作
Python爬虫1.0——urllib库部分基础操作

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