urllib库---内置库

1.urllib库基本使用

from urllib import request



url = 'https://www.biedoul.com/index/21868/'

resp = request.urlopen(url)

print(resp.read().decode('utf-8'))

2.网页数据保存格式---urlretrieve

request.urlretrieve(url,'bie.html')

在py文件相同目录下,会生成一个html文件:

bie_html

打开即可浏览网页源代码

3.加密与解密---urllib编解码

urlencode函数

实现字典数据--->url编码数据

示例代码:

from urllib import parse

data = {

  'name':'python爬虫',  'greet':'hello world','author':'ZHiLuan'

}

qs = parse.urlencode(data)

print(qs)

运行结果:

name=python%E7%88%AC%E8%99%AB&greet=hello+world&author=ZHiLuan

4.url地址解析---parse/split

·urlparse和urlsplit

示例代码:

from urllib import parse

url = 'https://www.biedoul.com/index/21868/'

result = parse.urlparse(url)

print(result)

运行结果:

ParseResult(scheme='https', netloc='www.biedoul.com', path='/index/21868/', params='', query='', fragment='')

由运行结果可知,urlparse函数可以解析出网页中的scheme、netloc、 path、params、query、fragment。

urlsplit函数的功能差不多,用法一致,只是缺少params项

此外,地址解析也可单独打印出相关内容,如:

ptint(result.scheme)
print(result.netloc)
...

5.Resquests类

request.Resquest类

from* urllib *import* request

url = 'http://www.baidu.com'

*# 增加请求头,告诉网站我们是一个正经的“浏览器”在访问*
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}

rq = request.Request(url,*headers*=headers)
res = request.urlopen(rq)
print(res.read())

6.proxy Handler代理设置

# 6.proxy Handler代理设置*
*# 原理:请求目的网站之前,先请求代理服务器,然后代理服务器去请求目的网站,代理服务器拿到目的网站数据。*

*from* urllib *import* request
url = 'http://www.baidu.com'
*# 1.使用proxy Handler传入代理构建一个handler*
handler = request.ProxyHandler({'http':'122.193.244.243:9999'})*#{'协议':'ip:端口'}*
*# 2.使用上面创建的handler构建一个opener*
opener = request.build_opener(handler)
*# 3.使用opener.open(url)*
resp = opener.open(url)
print(resp.read())

代理网站如下:

未完待续......

posted @ 2020-10-29 12:49  玉树Yshu  阅读(123)  评论(0)    收藏  举报