UserAgent 身份隐藏
-
UserAgent:用户代理,UA,属于heads的一部份,服务器通过UA来判断访问者身份
-
常见的UA值,使用的时候可以直接复制粘贴,也可以用浏览器访问的时候抓包
1.Android Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 2.Firefox Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0 3.Google Chrome Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19 4.iOS Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3
-
设置UA可以通过两种方式:
- headers
- add_header
'''
访问百度
使用UserAgent伪装
'''
from urllib import request, error
if __name__ == '__main__':
url = 'http://www.baidu.com'
try:
# 使用headers方法伪装UA
# headers = {}
# headers['User-Agent'] = 'Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3'
# req = request.Request(url, headers= headers)
# 使用add_header方法
req = request.Request(url)
req.add_header("User-Agent", "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1")
rsp = request.urlopen(req)
html = rsp.read().decode()
print(html)
except error.HTTPError as e:
print(e)
except error.URLError as e:
print(e)
except Exception as e:
print(e)
ProxyHandler处理(代理服务器)
- 使用代理IP,是爬虫的常用手段
- 获取代理服务器的地址
- www.xicidaili.com
- www.goubanjia.com
- 代理用来隐藏真实访问中,代理也不能频繁访问的某一个固定网站,所以,代理一定要很多很多
- 基本使用步骤
- 设置代理地址
- 创建ProxyHandler
- 创建opener
- 安装opener
'''
使用代理访问百度网站
'''
from urllib import request, error
if __name__ == '__main__':
url = "www.baidu.com"
# 使用代理步骤
# 1. 设置代理地址
proxy = {'http': '120.194.18.90:81'}
# 2. 创建ProxyHandler
proxy_handler = request.ProxyHandler(proxy)
# 3. 创建Opener
opener = request.build_opener(proxy_handler)
# 4. 安装opener
request.install_opener(opener)
# 现在如果访问url,则使用代理服务器
try:
rsp = request.urlopen(url)
html = rsp.read().encode()
print(html)
except error.URLError as e:
print(e)
except Exception as e:
print(e)