代理池
client --> sever
client --> proxy -->server
代理操作
在爬虫中所谓代理指的是什么?
就是代理服务器
代理服务器的作用是什么?
就是用来转发请求和响应数据的
在爬虫中为什么使用代理服务器?
爬虫在短时间内对服务器发起了高频的请求,那么服务器会检测到这样一个异常的行为请求,就会将该请求对应设备的ip禁掉,就以这client设备无法对服务器再次进行请求发送。(IP被限制)
如果IP被限制,可以使用代理服务器进行请求转发,破解IP限制反爬限制。因为使用了代理后,服务器接受到的请求对应的IP地址就是代理服务器而不是真正的客户端的IP。
代理服务器匿名度:
- 透明代理:服务端知道你使用了代理并指导你的真实IP
- 匿名代理:知道你使用代理,不知道你真实IP
- 高匿代理:不知道你使用代理,不知道你的真实IP
代理类型:
- https:转发https协议
- http:转发http协议
代理服务器
import os
import pymongo
import requests
from lxml import etree
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.3538.77 Safari/537.36'
}
#代理精灵API
url = ''
response = requests.get(url=url, headers=headers)
response.encoding = 'utf-8'
tree = etree.HTML(response)
proxy_list = tree.xpth('//body/text()')
# 代理池
http_proxy = []
for proxy in proxy_list:
dic = {
'http': proxy
}
http_proxy.append(dic)