urllib库

urllib库概述

urllib库是Python中的一个最基本的网络请求库。可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。

urlopen函数

python3的urllib库中所有和网站请求相关的方法都被集中,在’urllib.request’模块中,urlopen可以将当页全部代码爬下来

from urllib import request
res = request.urlopen('http://www.baidu.com')
print(res.read())

urlretrieve函数

这个函数可以方便的将网页上的一个文件保存到本地。

from urllib import request
request.urlretrieve('http://www.baidu.com/','baidu.html')

urlencode函数

使用代码发送请求时,如果url中包含了中文或其他特殊字符,必须手动进行编译,这时候应该使用urlencode函数来实现。

from urllib import parse
data = {'name':'爬虫基础','greet':'hello','age':'80'}
qs = parse.urlencode(data)
print(qs)

urlparse和urlsplit

有时候拿到一个url,想对这个url中的各个组成部分进行分割,这时候可以使用urlparse或urlsplit来进行分割。

from urllib import request.parse
url = 'http://www.baidu.com/'
result = parse.urlsplit(url)
print('scheme',request.scheme)
print('path',request.path)

urlparse和urlsplit基本上是一样的,唯一不同的是urlparse中多了一个params属性。

ProxyHandler处理器(实现代理)

很多网站会检测某一时间段某个IP的访问次数(通过流量统计,系统日志等),如果访问次数过多,他会禁止这个IP访问。所以我们可以设置一些代理服务器。

from urllib import request

handler =request.ProxyHandler({"http":"218.66.161.88.31769"})
opener = request.build_opener(handler)
req = request.Request("http://httpbin.org/ip")
resp = opener.open(req)
print(resp.read())

常用代理:

  • 快代理:http://www.kuaidaili.com/
  • 代理云:http://www.dailiyun.com/

你可能感兴趣的:(#,爬虫)