关于urllib库
在python2中有Urllib库urllib2库,在python3中两个合并成了一个urllib
在python2中 --> 在python3中
import urllib2 --> import urllib.request import ullib.error
Import urllib --> import urllib.request, ullib.error, urllib.parse
Import urlparse --> import urllib.parse
Import urllib2 --> import urllib.request, urllib.error
Import urllib2.Request --> import urllib.request.Request
之后的程序都是python3写的
快速打开一个网站
Import urllib.request
File = urllib.request.urlopen(‘http://www.baidu.com’)
File.getcode() # 获取状态码
File.geturl() # 返回当前的url
print(File.read()) # 一次将结果输出
print(File.readline()) # 一次输出一行
# 将请求返回的html写入到本地
htmlFile = open(‘test.html’, ’w’)
htmlFile.write(File.read())
htmlFile.close()
# 也可以用 urllib.request.urlretrieve()
Filename = urllib.request.urlretrieve(‘http://www.baidu.com’, filename = ‘test.html’)
urlretrieve() 执行的时候会产生一些缓存,可以通过以下方法清除
urllib.request.urlcleanup()
urllib.request.quote(‘http://www.baidu.com’)
返回结果:
'http%3A//www.baidu.com' # 其实就是url编码,把一些不合规范的字符编码
# url解码
urllib.request.unquote(‘http%3A//www.baidu.com’)
伪装成浏览器访问网站
在请求的加上Header
用浏览的f12可以看到
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36
方法一:build_opener()
Import urllb.request
Url = ‘http://www.baidu.com’
Headers = {‘User-Agent’ , ‘ Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36’}
Opner = urllb.request.build_opener()
Opener.addheaders = [Headers]
Data = Opener.open(url).read()
方法二:add_header()
Import urllib.request
Url = ‘http://www.baidu.com’
Req = urllib.request.Request(url)
Req.add_header(‘User-Agent’ , ‘ Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36’)
Data = urllib.request.urlopen(Req).read()
之后会继续更新一些,还有文中有些地方大小写不对,自己改改就好了
网友评论