代理
反爬机制:禁止IP访问
当某一个IP请求一个门户网站单位时间的次数达到一个阈值时,门户网站可能采取一些反爬措施,限制当前IP访问,拒绝访问。
反反爬机制:代理
破解禁止IP访问的反爬机制
定义:
代理服务器:本机请求网站发送给代理服务器,代理服务器中转向web服务器请求,此时web服务器上请求的IP就不是本机的IP,而是代理服务器的IP。从而实现破解封IP的反爬机制。
作用
- 突破自身IP访问的限制
- 隐藏自身真实的IP,免受攻击
第三方代理
- 快代理
- 西祠代理
- www.goubanjia.com
代理类型
- http:只能应用在http协议的url中
- https:只能应用在https协议的url中
代理匿名度
- 透明:知道代理,且知道真实访问地址
- 匿名:知道代理
- 高匿:不知道代理
实战
百度搜索IP:https://www.baidu.com/s?wd=ip
import requests
if __name__ == "__main__":
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
url = 'https://www.baidu.com/s?wd=ip'
page_text = requests.get(url=url, headers=headers).text
with open('./代理/ip.html', 'w', encoding='utf-8') as fp:
fp.write(page_text)
print('over')
注意代理IP类型
进入 https://www.kuaidaili.com/free/
进入 www.goubanjia.com
百度为https协议,故采取https: 123.160.97.242:9999
适用于Python 3.7及以上版本
proxies = {
'https': 'https://123.160.97.242:9999'
}
page_text = requests.get(url=url, headers=headers, proxies=proxies).text
适用于Python 3.7以下版本
proxies = {
'https': '123.160.97.242:9999'
}
page_text = requests.get(url=url, headers=headers, proxies=proxies).text
代理访问
import requests
if __name__ == "__main__":
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
url = 'https://www.baidu.com/s?wd=ip'
proxies = {
'https': 'https://123.160.97.242:9999'
}
page_text = requests.get(url=url, headers=headers, proxies=proxies).text
with open('./代理/ip.html', 'w', encoding='utf-8') as fp:
fp.write(page_text)
print('over')
由于免费的代理服务器不稳定,没有成功的,可以自行测试练习